Go语言的“简介”
Go语言的起源
go语言是谷歌2009发布的开源编程语言。Go语言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三个大牛于2007年开始设计发明,并于2009年正式对外发布;三名初始人最终的目标是设计一种适应网络和多核时代的C语言,所以Go语言很多时候被描述为“类C语言”,或者是“21世纪的C语言”,Go从C继承了相似的语法、编程思想等。
所以Go语言的写法其实与C语言极其相似。
Go语言的特点
“Go兼具Python等动态语言的开发速度和 C/C++等编译型语言的性能与安全性”
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
- 最吸引我的还是跨平台!跨平台真的真的非常方便而且非常非常好用!
- 垃圾回收的力量也不容小视,可以省下很多内存呢!
踏入Go语言之门
开发环境是必不可少的!
老师的课程里面讲得很清楚啦,我也是按照老师给定的步骤一步步安装,大家切莫着急呀,慢慢安装!
正式传授基础语法!
- 包声明,编写源文件时,必须在非注释的第一行指明这个文件属于哪个包,如
package main
。 - 引入包,其实就是告诉Go 编译器这个程序需要使用的包,如
import "fmt"
其实就是引入了fmt包。 - 函数,和c语言相同,即是一个可以实现某一个功能的函数体,每一个可执行程序中必须拥有一个main函数。
一、基本结构
还是以大家熟悉的Hello World开场!以下图片是最基础的Go语言模型:
package main
import(
"fmt"
)
func main(){
fmt.Println("hello world")
}
- 可以看出,Go语言没有强制语句后需要用“;”或者“.”结束
- 需要注意大小写的区分!
注意!下面介绍的各个基础语句都是定义在func main(){}
里面的,不再多写。
二、变量
Go语言的变量定义编写不同于Java和Dart语言。对于Go而言,当变量定义为var
类型且仍想要明确变量的具体类型时,需要如下方法进行定义:
var b, c int = 1, 2
三、条件语句
条件语句分为两种,第一种为if-else
,第二种为switch
。
与Java语言相比,Go语言在编写if的条件时不用加括号。伪代码示例如下所示:
if 条件 {
方法体
} else {
方法体
}
注意!!!switch
的每个case
中无需加break
即可!!伪代码示例如下所示:
switch 对象 {
case 情况1:
方法体
case 情况2:
方法体
default:
方法体
}
循环语句与数组表达方法同C、Java等语言类似,这边不多说明。
四、切片
这个我想着重讲一下,切片是Java语言中没有的。Java里面有一个类似操作是对String
的,它的方法为substring(index1, index2)
以及substring(index)
。前者是取String
下标为[index1, index2)
的子字符串,后者是取String
下标为[index, str.length())
的子字符串,没有可以直接指定取String
从开头到某个下标的子字符串。Java中没有对数组切片的定义。
而Go语言不同于Java,它有对数组切片的定义。具体定义的代码如下:
s := make([]string, 6) //定义一个数组s
s[0] = "a"
s[1] = "b"
s[2] = "c"
s[3] = "d"
s[4] = "e"
s[5] = "f"
fmt.Println(s[2:5]) //[c d e] 意思为打印s[2] s[3] s[4]
fmt.Println(s[:5]) //[a b c d e] 意思为打印s[0] s[1] s[2] s[3] s[4]
fmt.Println(s[2:]) //[c d e f] 意思为打印s[2] s[3] s[4] s[5]
- 真的很神奇而且很方便,省去了
for
循环对数组的遍历就可以对数组中的指定元素进行打印!!!这个真的很好用!!狠狠爱住了!
小总结
Go语言的基础用法还是比较清晰易懂的,大家可以根据老师上课讲解的ppt上面的代码进行理解和总结,这样更有利于促进我们对Go语法的消化和运用。当然啦,如果知识吸收得足够好可以将我们学过的语言(例如Java、C、C++、Python等)写的代码题目用Go语言进行编写,这样更能够加深记忆啦!