Go
入门第一篇,我会提炼出经常使用的基础点,对于刚开始入门 Go
,基础还不扎实的童鞋可以参考此文快速查阅 Go
的基础用法。
系列整理:
如果对 Go
语言本身感兴趣,可以阅读我的这篇译文 Go语言的优点,缺点和令人厌恶的设计。
变量定义
// 默认为零值
var a string
var b int
var a, b string
// 声明变量值
var e string = "abc"
// 变量属于同一类型,可只写一次类型
var c, d int = 3, 4
// 推论类型
var f, g, h, i = 3, 4, true, "def"
f, g, h, i := 3, 4, true, "def"
// 括号写法
var (
aa = 3
ss = "kkk"
bb = true
)
内建变量类型
- bool, string
- (u)int, (u)int8, (u)int16, (u)int32, (u)int64, uintptr
- byte, rune
- float32, float64, complex64, complex128
complex 是复数类型
// 不用1i,程序会将 i 识别为变量
fmt.Printf("%.3f\n", cmplx.Exp(1i*math.Pi) + 1)
强制类型转换
var a, b int = 3, 4
// math.Sqrt 参数和返回值都是 float64
c := int(math.Sqrt(float64(a *a + b * b)))
常量的定义
const a, b = 3, 4
const (
filename = "abc.txt"
a, b = 3, 4
)
// const 数值可以作为任意的类型使用,所以此处 a, b变量不需要手动转换为 float64
c := int(mant.Sqrt(a*a + b*b))
自增枚举类型
const (
javascript = iota
c
python
_
php
)
const (
b = 1 << (10 * iota)
kb
mb
gb
tb
pb
)