package main
import "fmt"
// 变量
// 函数
func main(){
fmt.Println("Hello Go")
}
break default func interface select
case defer go map struct
chan else goto package switch
const if range type fallthrough
contine for import return var
使用关键字var声明变量。
var name type = expression
// 例如
var name string = "张三"
// 短变量声明, 使用 := 自动推导结果到变量
name := expression
// 例如
name := "李四"
Go 同时具备有符号整数和无符号整数,有符号可以理解为:支持表示正负数,无符号可以理解为全是正数。
有符号整数分4种大小:8位、16位、32位、64位,用int8、int16、int32、int64表示,对应的无符号整数是uint8、uint16、uint32、uint64。
还有两种类型int和uint。在特定的平台上,其大小与原生的有符号整数/无符号整数相同,或等于该平台上的运算效率最高的值。这两种类型大小相等,都是32位或者64位,具体大小由编译器决定。
rune类型是int32类型的同义词,常常用于指明一个值是Unicode码点(code point)。这两个名称可以互相使用。同样,byte类型是unit8类型的同义词,强调一个值是原始数据,而非量值。
还有一种无符号整数 uintptr,大小不明确,可以用于保存指针类型。仅用于底层编程。
Go具有两种大小的浮点数,float32 和 float64。可以通过math包的math.MaxFloat32 和 math.MaxFloat64 常量来查看两种类型的最大值。
十进制情况下,float32的有效数字大约是6位,float64的有效数字大约是15位。
var f float32 = 2.3453
// 支持小数点前后不写
var f1 float32 = .234
var f2 float32 = 2344.
// 非常大或非常小的数字使用科学记数法,在数量级指数前写字母e或E
const Avogadro = 6.0214553e23
const Planck = 5.73245345e-34
Go 具备两种大小的复数 complex64 和 complex128,二者分别由float32和float64构成。内置的complex函数根据给定的实部和虚部创建复数,内置的real函数和imag函数分别提取复数的实部和虚部。
var x complex128 = complex(1,2)
使用type关键字声明命名类型,它和某个已有的类型使用相同的底层类型。语法如下
type name underlying-type
// 示例
// 定义一个摄氏度的类型
type Celsius float64
// 定义一个华氏度的类型
type Fahrenheit float64
// 方式1
import "fmt"
import "math"
// 方式2
import (
"fmt"
"math"
)
// 方式3:短名称(解决多个包名相同冲突问题
// 其中,使用. 代表直接可以调用,不需要用包名(不推荐)
import (
std "fmt"
. "math"
)