go学习(11)收集,积累,整理

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)
}

猜你喜欢

转载自blog.csdn.net/ltk80/article/details/82965240
今日推荐