Go语言基础之切片】的更多相关文章

Go语言基础之切片 本文主要介绍Go语言中切片(slice)及它的基本使用. 引子 因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性. 例如: func arraySum(x []int) int{ sum := for _, v := range x{ sum = sum + v } return sum } 这个求和函数只能接受[3]int类型,其他的都不支持. 再比如, a := [], , } 数组a中已经有三个元素了,我们不能再继续往数组a中添加新元素了. 切…
Go语言基础之切片 本文主要介绍Go语言中切片(slice)及它的基本使用. 引子 因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性. 例如: func arraySum(x [3]int) int{ sum := 0 for _, v := range x{ sum = sum + v } return sum } 这个求和函数只能接受[3]int类型,其他的都不支持. 再比如, a := [3]int{1, 2, 3} 数组a中已经有三个元素了,我们不能再继续往数组…
本文主要介绍Go语言中切片(slice)及它的基本使用. 一.引子 因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性. 例如: func arraySum(x [3]int) int{ sum := 0 for _, v := range x{ sum = sum + v } return sum } 这个求和函数只能接受[3]int类型,其他的都不支持. 再比如, a := [3]int{1, 2, 3} 数组a中已经有三个元素了,我们不能再继续往数组a中添加新元素了…
1.切片做函数参数 (备注:用了冒泡排序) 示例: package main //必须有个main包 import "fmt" import "math/rand" import "time" func InitData(s []int) { //设置种子 rand.Seed(time.Now().UnixNano()) for i := 0; i < len(s); i++ { s[i] = rand.Intn(100) //100以内的…
1.切片和底层数组关系 示例: package main //必须有个main包 import "fmt" func main() { a := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} //新切片 s1 := a[2:5] //从a[2]开始,取3个元素 s1[1] = 666 fmt.Println("s1 = ", s1) //[2 3 4] fmt.Println("a = ", a) //[2 666 4]…
1.切片的创建 示例: package main //必须有个main包 import "fmt" func main() { //切片和数组的区别 //数组[]里面的长度时固定的一个常量, 数组不能修改长度, len和cap永远都是5 a := [5]int{} fmt.Printf("len = %d, cap = %d\n", len(a), cap(a)) //切片, []里面为空,或者为...,切片的长度或容量可以不固定 s := []int{} fmt.…
一.数组(array) 1.1 数组定义 1)含义: 数组是同一类型的元素集合. 数组是具有固定长度并拥有零个或者多个相同数据类型元素的序列. 2)定义一个数组的方法: var 变量名[len] type 例子: var a[5]int //5个整数(int)类型的数组 var a[5]string //5个字符串(string)类型的数组 解释: 像上面这种定义方法,我们是指定了数组的长度,但是还有如下定义方法: var a=[...]int{1,2,3} 如果把数组的长度替换为...,那么数…
002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/02.2.md 1.3 官网: https://golang.org/ref/spec#Constants 2 helloworld 2.1 Go使用package(和Pyt…
Go语言基础(二) 跟着上篇,继续看Go基础 一.变量作用域 与C类似,有全局变量.局部变量.形参之分 package main import "fmt" // 全局变量 var c = 20 func main() { // 局部变量 a := 10 b := 20 fmt.Println("a = ", a) fmt.Println("a + b = ", sum(a, b)) fmt.Println("c = ", c)…
Go语言基础之反射 本文介绍了Go语言反射的意义和基本使用. 变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息. 值信息:程序运行过程中可动态变化的. 反射介绍 反射是指在程序运行期对程序本身进行访问和修改的能力.程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分.在运行程序时,程序无法获取自身的信息. 支持反射的语言可以在程序编译期将变量的反射信息,如字段名称.类型信息.结构体信息等整合到可执行文件中,并给程序提供接口访问反射信息,这样就可以在…