Go起步Tips¶
备注
本文面向小白(我)的随手记,比较杂乱
Go是静态类型语言,也就是编译时即确定变量类型,变量类型不可错误使用,否则编译时报错。
变量类型¶
reflect
包提供了 TypeOf
函数可以返回参数类型:
package main
import (
"fmt"
"reflect"
)
func main() {
fmt.Println(reflect.TypeOf(42))
fmt.Println(reflect.TypeOf(3.1415))
fmt.Println(reflect.TypeOf(true))
fmt.Println(reflect.TypeOf("Hello, Go!"))
}
=
和 :=
区别¶
=
表示赋值:=
表示声明变量并赋值,并且系统自动推断类型,不需要var关键字
// = 使用必须使用先var声明例如:
var a
a=100
//或
var b = 100
//或
var c int = 100
// := 是声明并赋值,并且系统自动推断类型,不需要var关键字
d := 100
for
循环 range
(键值)¶
for ... range
是Go语言特有的迭代结构,可以遍历数组、切片、字符串、map以及通道(channel)。非常类似于其他语言的 foreache
语句:
for key, val := range coll {
...
}
注意:
val
始终为集合中对应索引的值拷贝,因此它一般只具有只读性质,对它所做的任何修改都不会影响到集合中原有的值通过
for range
遍历的返回值具有一定的规律:数组、切片、字符串返回索引和值
map返回键和值
通道(channel) 只返回通道内的值
举例:
package main
import "fmt"
func main() {
m := make(map[string]int)
m["hello"] = 100
m["world"] = 200
for key, value := range m {
fmt.Println(key, value)
}
}
参考¶
《Head First Go语言程序设计》