《GO》第二章 顺序编程

it2023-09-27  73

第二章

2.1 变量

声明 示例:var v1 int 关键字:var 变量名:v1 变量类型:int 初始化 var v1 int = 10(var v1 int 这是声明; = 10这是初始化)var v2 = 10(编译器自动推导数据类型为int)v3 := 10(利用 := 表示声明和初始化一步完成),注意:出现在 := 左边的变量不能是已经被声明过的。 赋值 var v1 int v1 = 10其余与别的语言基本一致多重赋值 i, j = j, i//一行代码实现两个变量交换 匿名变量 使得代码的阅读性更好_, _, nickName := Getname()//只关注了小名,就可以用匿名变量 _ 来忽略不关注的变量

2.2 常量

字面常量 无类型的,可以赋值给任何合适的变量,可以和任何类型比较常量定义 const Pi float64 = 3.1415 const zero = 0.0 const( size int64 = 1024 eof = -1 ) const mask = 1 << 3//正确,1<<3实在编译器运算的 const Home = os.GetEnv("Home")//错误, os.GetEnv(“Home”)是在运行期才知道结果的 常量的赋值是一个编译期行为,右值不能出现任何运行期才能得出结果的表达式预定义变量 iota 在每个const关键字出现时重置为0,之后没出现一次iota就自增1,知道下一次const关键词的出现再次重置为0truefalse 枚举 不支持enumconst( Sunday = iota Monday Tuesday Wednesday Thursday Friday Saturday numberOfDays )大写字母开头的常量在包外可见,小写字母为包内私有。

2.3 类型

基础类型:布尔、整形、浮点、复数、字符串、字符类型、错误类型 复合类型:指针、数组、切片、字典、通道、结构体、接口

布尔 不能用0,1给bool类型的变量赋值可以用判断表达式给bool类型的变量赋值 整形 int 和 int32不是同一种类型,不能直接赋值(可以通过强制转换)运算(数值运算、比较运算、位运算(取反:^x)) 浮点型 float32和C中的float等价float64和C中的double等价浮点数的比较需要调用math包中的Abs()函数 import "math" func IsEqual(f1, f2, p float64) bool{ return math.Abs(f1-f2)<p } 复数类型
最新回复(0)