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`