1、包管理及搜索
假如你的项目main包在c:\test1下,gopath也包含了该目录,你要新加一个包,包名test,步骤如下:
一、在c:\test1\新建一个目录,lib(梨子,为什么要新建目录,因为go中同一个目录中不允许有不同的包名)
二、在main中引入包,import ("test1/lib"),这里不能用相对路径或绝对路径
三、在代码中就可以使用lib下的test包了,.... test.代码
2、数组
一、定义: var array [2]int //array有两个元素
var array = [2]int {1,2} //定义并初始化元素
array:= [2]int {1,2} //速记定义
array:= [...]int {1,2} //[...]让编译器自动推导长度
二、数组和切片的区别: var array[] int //这种定义为切片
三、参数传递
//这里为值传递,必须为[2]int类型的数组
//arr_val为数组的一个拷贝,函数内的修改不影响原数组
func test1(arr_val [2]int) {
arr_val[0] = 886
fmt.Println(arr_val)
}
//这里传递数组的地址,任何修改将影响原有数组,引用传递效率高于值传递
func test2(arr_val *[2]int) {
arr_val[0] = 886
fmt.Println(arr_val)
}
func main() {
array := [2]int{1, 2} //2个元素的数组
test1(array) //值传递
test2(&array) //引用传递
fmt.Println(array)
}
四、随机数生成
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
slict := make([]int, 10)
for i := 0; i < 10; i++ {
slict[i] = rand.Intn(3)
}
fmt.Println(slict)
}