一文熟悉 Go 的基础语法和基本数据类型

耐心和持久胜过激烈和狂热。
前言
快速上手一门新的语言,首先要做的就是熟悉新语言的基本语法和基本数据类型,本文将对 Go 语言的基础语法和基本数据类型进行介绍。
Hello,World!
记得当初学习 C 语言的时候,第一个演示程序是输出 Hello World!
,Go 官网的第一个案例也是输出 Hello,World!
。
从 Hello,World!
输出案例可知:
声明包的关键字是
package
。导包的关键字是
import
。使用包里面的函数以
包名.函数
这种格式进行。函数的声明关键字是
func
。
有关 main 函数的一些要点
main
函数必须在main
包里。当
main
函数所在的文件被命名为main.go
时,可以直接使用go run ./main.go
命令直接运行程序。当
main
函数所在的文件名字不为main.go
,需要分以下两种情况,假设所在文件的名字为a.go
。1、当
a.go
文件里没有引用其他文件的变量等元素时,可以直接使用go run ./a.go
运行。
2、当
a.go
文件里有引用其他文件的变量等元素时,需要先使用go build ./a.go ./b.go
生成可执行文件,再运行exe
可执行文件。
关键字
除了上面提到的几个关键字以外,Go 语言还有其他关键字,一共 25 个关键字。

package
声明
语法格式:
package xxx
。
包名字由英文或英文与下划线组合组成。
注意点:
包声明时名字可以和文件夹的命名不一样。

同一个文件夹内,每个 Go 文件的包声明必须一致,否则会报错。
引入
包的引入方式:
import [alias] xxx
,alice
是一个可选值,为包起别名。
注意点:
引入包而没有使用,会报错。
匿名引入:
一般匿名引入,是为了使用包里面的 init
函数,它先于 main
函数之前执行
基本数据类型
Go 语言中的数据类型有很多,除了本文介绍的基本数据类型以外,还有指针、数组、结构体 struct
、管道 channel
、函数 func
、切片 slice
、接口 interface
、map 等。

整形数据类型
有符号整数类型

无符号整数类型

其他整数类型

浮点数据类型

字符类型
Go 没有字符类型,如果要存单个字符(字母),可使用
byte
类型代替。Go 中字符使用
UTF-8
编码。
布尔类型
布尔类型在 Go 中对应
bool
类型,它只允许取值为true
和false
。布尔类型占 1 个字节。
布尔类型适用于逻辑运算,一般用于程序流程控制。
字符串类型
字符串不可变(指的是其中字符的值不能变,例如
var name string = "cmy"
,然后操作name[0]='a'
是不行的)。如果字符串中需要换行或者字符串较复杂,可以使用反引号 ``。
基本数据类型的默认值

常量和变量声明
常量声明:
const xxx type = value
变量声明:
var xxx type = value
在定义局部变量(方法或函数内部的变量)时,还可以使用 :=
去声明,切记是局部变量,全局变量不能使用 :=
,否则会报错。
Go 会使用类型推断来判断类型,数字会被理解为 int
或者 float64
,字符串会被理解为 string
。
注意点:
Go 推荐使用驼峰命名的方式。
常量被声明后,后续的值不能被修改。
常量和变量的名字,首字母是否大写,决定着它是否能够被包外文件访问,大写则可以被包外的 Go 文件访问,小写则认为是私有的,只能被包内的 Go 文件访问。
变量声明之后,没有使用,编译时会报错。
类型不匹配不能被赋值。
同一个作用域下,变量只能声明一次。
结尾
如果本文对你有帮助,欢迎点赞收藏加关注,如果本文有错误的地方,欢迎指出!
版权声明: 本文为 InfoQ 作者【陈明勇】的原创文章。
原文链接:【http://xie.infoq.cn/article/b1156cbfb72cd3478c104a02f】。文章转载请联系作者。
评论