Go 变量(Go中文读书笔记)
?
Erlang 与 go在部分功能上相似。Erlang和Go主要的区别是Erlang是运行在虚拟机上的函数式语言,而Go是命令式语言 Erlang是运行在虚拟机上,而Go是编译的。Go用起来感觉更加接近Unix
?
Go语言如果希望将两个或则更多的语句放在一行它们必须使用分号(;)分隔。
?
多个变量或者const 和 import 声明可以使用括号
?
var (
x int?
b bool
)
?
相同类型的多个变量同样可以在一行内完成声明 如var x,y int 让x和y 都是int 类型的变量。同样可以使用平行赋值:
?
a , b : =? 20, 16
?
Go 中一个特殊的变量名就是 _? 任何赋值给它都会被丢弃
?
?
在Go语言中对于声明没有使用的变量会产编译错误
?
?
布尔值类型为 bool 值为 true 或则false
?
数字类型 没有定义长度的int 和定义长度的是 int8、int16、int32、int64 和? byte 、uint8、uint16、uint32、uint64 其中 byte是uint8的别名。浮点类型的值有float32和float64 其中float即便是32位机子上也是64位
?
常量在Go 中的关键词是const 在编译时候被创建 只能是数字、字符串或则布尔值;
const x = 42 生成x找个常量或者可以使用 iota来生成枚举值
?
const (
a = iota
b = iota
)
?
第一个iota表示为0,因此a等于0,当iota再次在新的一行使用时。它的值增加了1,因此b的值是1
也可以省略Go重复的= iota?
?
字符串 string 在Go中是UTF-8使用双引号包含。如果是单引号则表示一个字符 在Go中不是string类型
一旦给字符常量赋值,字符串就不能修改了。因此在Go中字符串是不可变的。
?
var s string = "hello"
s[0] = 'c' ? 这种是错误的
?
在Go中要实现需要以下方法
?
s := "hellow"
c := []byte(s)
c[0] = 'c'
s2 =: string(c)
?
转为s为一个字节数组,修改第一个元素。创建数组的第一个字符串保存修改
?
在Go中输入多行字符串必须将+号写在上一行,不然会被转换成两个字符串。或者采用反引号(`)作为原始字符串符
?
s := ` Starting part
?
Ending part`