1, 整数类型。 go
序号 类型和描述
1 uint8
无符号 8 位整型 (0 到 255)
2 uint16
无符号 16 位整型 (0 到 65535)
3 uint32
无符号 32 位整型 (0 到 4294967295)
4 uint64
无符号 64 位整型 (0 到 18446744073709551615)
5 int8
有符号 8 位整型 (-128 到 127)
6 int16
有符号 16 位整型 (-32768 到 32767)
7 int32
有符号 32 位整型 (-2147483648 到 2147483647)
8 int64
有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
以下代码证明占用字节数并不相同
package main
import (
"fmt"
"unsafe"
)
func main() {
var num1 int8 = 8
var num2 int64 = 9
var num3 uint32 = 99
fmt.Print(unsafe.Sizeof(num1))
fmt.Print("\n")
fmt.Print(unsafe.Sizeof(num2))
fmt.Print("\n")
fmt.Print(unsafe.Sizeof(num3))
}
输出
1
8
4
字符串多行拼接用+号,换行时+号必须在上一行。
go中字符默认值
int 0
float 0
string ''
flloat false
类型强制转换
int()
float32()
强制转换会二进制溢出,并不是取余数。
import 时 前面添加 _ 可以暂时忽略包。
如果变量名,函数名,常量名首字母大写, 可以被其他的包访问,小写则不可以,可简单理解为,首字母大写是公用的,小写是私有的。
注释一般用 // 就可以
声明和导入包
package main
import (
"fmt"
"path"
"test/model"
)
func main() {
fmt.Print(path.Base("R"))
fmt.Print(model.Name)
}
go 中没有前 ++
比如
++i
--i 是错误的
go 中switch 语句,默认有break.
switch 数据类型要一致,否则报错。
for range 类似foreach 写法
package main
import "fmt"
func main() {
var str string = "hello word"
for key, val := range str {
fmt.Printf( "key=%d val=%c \n", key, val)
}
}
注意下这里替换字符串用的%c, 输出函数用的Printf.
init 初始化函数。
defer, 在函数使用完资源释放资源, 例如链接数据库。defer是栈先入后出。
image.png
go 没有try catch ,捕获异常这么用, 有匿名函数,defer + recover
image.png
1, 切片简单来说是可变的数组。 切片是数组的引用。
append 增加切片数组。
image.png
2, map 容易被检索的二维数组。 遍历要用for-range. 不能用for,因为没数字下标
go语言没有类, 用结构体 struct 结构体完成相应功能。
简单的结构体
package main
import "fmt"
type Cat struct {
Name string
Age int
Color string
}
func main() {
var cat1 Cat
cat1.Name = "nihao"
fmt.Print(cat1)
fmt.Print(cat1.Name)
}
有意思的是,同一个文件夹下,结构体名称不能重复。
结构体方法的使用。
import "fmt"
type Dog struct {
Name string
}
func (d Dog) test() {
fmt.Print(d.Name)
}
func main() {
var dog Dog
dog.Name = "tom"
dog.test()
}
是又写了一个函数,将结构体传入,然后操作结构体参数,并在函数中实现逻辑。 调用时用点。
goroutine, 利用多个cpu。
image.png
只是用go 后面跟一个函数, 两块代码将会穿插执行, 可发挥多cup功能。
runtime 包可获取机器cpu数量,从而更好运行进程。
直接go 会运行多个协成, 多个协成不能同时操作一个map, 就是不能同时写一个文件,会报错。
go 处理协议,有默认的net包, 文档
http://docscn.studygolang.com/pkg/net/
网友评论