放在同一行的多个语句,必须用分号分隔。
变量的类型在变量名后面。
var a int
var b bool
a = 15
b = false
等价:
a := 15
b := false
多个var声明可以成组。
var{
x int
b bool
}
同样适用于const和import。
相同类型的多个变量可以在一行内完成声明:
a,b := 20,16
一个特殊的变量名_(下划线),任何赋值给他的值都被丢弃。
_,b := 34,35
golang编译器对声明却未使用的变量报错。
变量名 declared and not used。
布尔类型: true和false
数字类型: int ,根据硬件决定长度。32位硬件是32位,64位为64.也可以明确其长度,完整的整数类型表;
int8,int16,int32,int64 byte, uint8,uint16,uint32 uint64.byte是uint8的别名。
浮点型有float32,float64(没有float类型)。
64位的整数和浮点数都是64位的,即便是在32位的架构上。这些类型全部独立,混合这些类型向变量赋值引起编译器错误。
常量:只能是数字、字符串和布尔值。可以使用iota生成枚举值。
const(
a = iota
b = iota
)
第一个iota表示0,因此a为0,当iota再次进行新的一行使用时,值增加1,b的值为1.
可以省略重复的iota。
const(
a = iota
b
)
字符串: string
s := "hello world!"
go中字符串是UTF-8的由双引号包裹。单引号表示一个字符,不是string。一旦给变量赋值,字符串就不能修改了。
一下做法非法:
var s string = "hello"
s[0] = 'c'
go中实现的方法:
s := "hello"
c := []byte(s) //转换s为字节数组
c[0] = 'c' //修改数组
s2 := string(c) //创建新字符串
多行字符串
//错误写法:
s := "starting part"
+ "ending part"
//会被转换成
s := "starting part";
+ "ending part";
//正确写法
s := "starting part" +
"ending part"
//另一种写法,使用`反引号作为原始字符串符号
s := `starting part
ending part`
//最后一个s将包含换行。在原始字符串标识中的值字符是不转义的。
//可以写一个例子,将上面修改为:
s := `starting \n part
ending part`
fmt.Printf("%s",s)
//会发现starting和part间没有换行而是‘\n’
rune :int32别名。用UTF-8进行编码。需要遍历字符串中的字符。可以循环每个字符。
复数:变量类型是complex128(64位虚数部分),complex64(32位虚数部分)
复数写为re+imi,re是实数部分,im虚数部分。
var c complex64 = 5+5i
错误:error。var a error定义a为一个error,a的值为int。
上一篇: golang在windows安装,vim配置,helloworld笔记
下一篇: golang笔记-array、slices和map
0 Responses so far.