命名
包:小写字母
文件:小写用“_“分隔
结构体:驼峰命名法
接口:用er作为后缀
变量:小写,驼峰分隔
常量:大写,“_”分隔
单元测试:文件xxxx_test 函数一般用TEST开头
变量
声明后必须使用,匿名变量不想使用可以用 "_"
package main
import "fmt"
func getName() (string, int) {
return "tom", 20
}
func main() {
/* var name string
var age int
var m bool */
/* var (
name string
age int
m bool
)
name = "wty"
age = 20
m = true */
//初始化
/* var name string = "wty"
var age int = 20
var m bool = true */
//类型推断
/* var name = "wty"
var age = 20
var m = true */
//批量初始化
// var name, age, m = "wty", 20, true
//短变量声明,只能在main()下使用
// name := "wty"
/* fmt.Printf("name: %v\n", name)
fmt.Printf("age: %v\n", age)
fmt.Printf("m: %v\n", m) */
//匿名变量,和上面函数一起使用
name, age := getName()
fmt.Printf("name: %v\n", name)
fmt.Printf("age: %v\n", age)
}
常量定义
ackage main
import "fmt"
func main() {
const PI = 3.14
fmt.Printf("PI: %v\n", PI)
const (
A = 100
B = 200
)
fmt.Printf("A: %v\n", A)
fmt.Printf("B: %v\n", B)
const w, h = 11, 22
fmt.Printf("w: %v\n", w)
fmt.Printf("h: %v\n", h)
//iota可以改变数值的常量类似于i++,从0开始
/* const (
a1 = iota //0
a2 = iota //1
a3 = iota //2
) */
/* const (
a = iota //0
_ //1
b = iota //2
) */
const (
a = iota //0
b = 100 //100
c = iota //2
)
fmt.Printf("a: %v\n", a)
fmt.Printf("b: %v\n", b)
fmt.Printf("c: %v\n", c)
}
数据类型
package main
import "fmt"
func main() {
/* var name string = "wty"
var age int = 20
var b bool = true
fmt.Printf("%T\n", name) //%T代表类型,\n换行
fmt.Printf("%T\n", age)
fmt.Printf("%T\n", b) */
/* a := 100
p := &a
fmt.Printf("%T\n", p) //输出*int指针 */
/* a := [...]int{1, 2, 3, 4, 5} //[5]int数组
fmt.Printf("%T\n", a) */
a := []int{1, 2, 3, 4, 5} //[]int切片类型
fmt.Printf("%T\n", a)
}