go 语言文件的基本布局如下:
即:
- package 子句
- imports 部分
- 实际代码
不需要分号
go 语言不需要以分号结尾;
字符串
双引号之间的文本,Go 将把它们视为字符串。
符文(rune)
字符串通常用于表示一系列文本字符,而 Go 的符文(rune)则用于表示单个字符。
字符串字面量由双引号(")包围,但 rune 字面量由单引号(')包围。
Go 程序几乎可以使用地球上任何语言的任何字符,因为 Go 使用 Unicode 标准来存储 rune。rune 被保存为数字代码,而不是字符本身,如果你把 rune 传递给 fmt.Println,你会在输出中看到数字代码,而不是原始字符。
布尔值
布尔值只能是两个值中的一个:true 或 false。它们对于条件语句特别有用,条件语句只在条件为 true 或 false 时才会导致代码段运行。
数字
Go 将整数和浮点数视为不同的类型,因此请记住,可以使用小数点来区分整数和浮点数。
数学运算与比较
Go 的基本数学运算符的工作方式与大多数其他语言一样。符号+表示加法,–表示减法,*表示乘法,/表示除法。
你可以使用<和>来比较两个值,看看其中一个值是否小于或大于另一个值。你可以使用==(这是两个等号)来查看两个值是否相等,以及!=(这是一个感叹号和一个等号,读作“不等于”)来查看两个值是否不相等。
<=测试第二个值是否大于或等于第一个值,>=测试第二个值是否小于或等于第一个值。
比较结果是一个布尔值,要么是 true,要么是 false。
类型
Go 中的值都被划分为不同的类型,这些类型指定了这些值的用途。整数可以用在数学运算中,但字符串不行。字符串可以大写,但是数字不能。
Go 是静态类型的,这意味着它甚至在程序运行之前就知道值的类型是什么。函数期望它们的参数具有特定的类型,它们的返回值也具有类型(可能与参数类型相同,也可能不同)。如果你不小心在错误的地方使用了错误类型的值,Go 会给你一个错误消息。
你可以通过将任何值传递给 reflect 包的 TypeOf 函数,来查看它们的类型。
reflect.TypeOf(42) //int
reflect.TypeOf(3.1415) //float64
声明变量
在 Go 中,变量是包含值的一块存储。可以使用变量声明为变量命名。
只需使用 var 关键字,后跟所需的名称以及变量将保存的值的类型。
// 声明一个int类型的变量 quantity
var quantity int
// 为变量赋值
quantity = 2
可以在同一语句中为多个变量赋值。只需将多个变量名放在=的左侧,将相同数量的值放在右侧,并使用逗号分隔。
一旦给变量赋了值,你就可以在任何要使用原始值的上下文中使用它们。
也可以在声明变量时为变量赋值。
零值
如果声明一个变量而没有给它赋值,该变量将包含其类型的零值。对于数值类型,零值实际上就是 0。
但是对于其他类型来说,0 值是无效的,因此该类型的零值可能是其他的值。例如,字符串变量的零值是空字符串,布尔变量的零值是 false。
短变量声明
你不必很明确地声明变量的类型并在之后使用=
为其赋值,而是同时使用:=
。
不需要明确地声明变量的类型;赋给变量的值的类型成为该变量的类型。
命名规则
Go 有一套简单的规则,适用于变量、函数和类型的名称:
- 名称必须以字母开头,并且可以有任意数量的额外的字母和数字。
- 如果变量、函数或类型的名称以大写字母开头,则认为它是导出的,可以从当前包之外的包访问它。如果变量/函数/类型的名称是以小写字母开头的,则认为该名称是未导出的,只能在当前包中使用。
- 如果一个名称由多个单词组成,那么第一个单词之后的每个单词都应该首字母大写,并且它们应该连接在一起,中间没有空格,比如 topPrice、RetryConnection。
类型转换
类型转换允许你将值从一种类型转换为另一种类型。
只需提供要将值转换成的类型,后面紧接着是在圆括号中的要转换的值。
var myInt int = 2
// 将int类型的myInt转换为 float64类型
float64(myInt)
常用go命令
- go fmt 格式代码
- go build 编译源代码
- go run 编译并运行