命名

包:小写字母

文件:小写用“_“分隔

结构体:驼峰命名法

接口:用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)
}