Go语言中文网 为您找到相关结果 26

golang slice分割和append copy还是引用

1. slice1:= slice[0:2] 引用,非复制,所以任何对slice1或slice的修改都会影响对方 data := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 0} data1 := data[0:2] data1[0] = 99 fmt.Println(data1) fmt.Println(data) [99 2] [99 2 3 4 5 6 7 8 9 0] 2.append append 比较特殊 声明: 源slice= src 添加slice = app 结果slice=tar 1)如果len(src) + len(app) <= cap(src) src和tar 是指向同一数据引用 ,即修改src或tar,会影响对方 2)否则 tar 是copy...阅读全文

博文 2014-10-04 19:27:07 咖啡伴侣

go语言,变量引用的用法

package main import "fmt" func main() { //引用变量赋值 var a string afuzhi(&a) fmt.Println(a) fmt.Println("=========================") bianliang() } func afuzhi(b *string) { *b = "ccc" //fmt.Println(b) } func bianliang() { var a = [3]int{1, 2, 3} var b = &a b[1]++ fmt.Println(a, b) } /* 输出结果 ccc ========================= [1 3 3] &[1 3 3] *...阅读全文

博文 2014-10-04 19:26:43 elick

liteIDE写Golang程序引用外面的package不能自动补全的问题

在使用liteIDE开发Golang程序时,会出现Golang自带的package可以自动补全,而引用外面的package则不能自动补全。今天终于在stackoverflow(http://stackoverflow.com/questions/19876902/liteide-no-autocomplete)找到了答案:在使用外面的package时,应该把package安装成功(使用go get, go install命令),才可以使用自动补全...阅读全文

博文 2015-06-17 20:02:33 xiaonanAndroid

go interfate 赋值slice 等数据, 如果是引用类型数据,则一改改全部

func main(){ var str_slice = []string {"123"} var str_interface interface{} str_interface = str_slice fmt.Println(str_slice,str_interface) //输出 [123] [123] str_slice[0] = "963" fmt.Println(str_slice,str_interface) //输出 [963] [963] } go interfate 赋值slice 等数据, 如果是引用类型数据,则一改改全...阅读全文

博文 2014-10-04 19:26:34 984195889

golang 中 reflect 简单用法

package main import ( "fmt" "reflect" ) type Person struct { Name string Age int } func (p Person) GetName() string { return p.Name } func (p Person) SetName(s string) { p.Name = s } func main() { a := &Person{"Name", 1} t := reflect.TypeOf(*a) //必须取值,否则类型为空 fmt.Println(t.Name()) v := reflect.ValueOf(a).Elem() //a需要是引用 k := v.Type() for i := 0; i <...阅读全文

博文 2016-08-17 15:00:05 su_sai

GO语言练习:值与引用

1、代码 2、运行 1 package main 2 3 import "fmt" 4 5 func testValue(){ 6 fmt.Println("for value") 7 var a = [3]int {1, 2, 3} 8 var b = a 9 b[1]++ 10 fmt.Println("a = ",a, "\nb = ", b) 11 } 12 13 func testReference() { 14 fmt.Println("for reference") 15 var a = [3]int {1, 2, 3} 16 var b = &a 17 b[1]++ 18 fmt.Println("a = ",a, "\nb = ", *b) 19 } 20 21 func ...阅读全文

博文 2015-07-07 03:00:00 fengbohello

methods for struct _ golang

Go supports methods defined on struct types package main import ( "fmt" ) type rect struct { width, height int } func (r *rect) area() int { return r.width * r.height } func (r rect) perim() int { return 2*r.width + 2*r.height } func main() { r := rect{width: 10, height: 5} fmt.Println("area : ", r.area()) fmt.Println("perim : ", r.perim()) rp := &...阅读全文

博文 2015-03-19 19:00:01 jackkiexu

golang 中 reflect 简单用法

package main import ( "fmt" "reflect" ) type Person struct { Name string Age int } func (p Person) GetName() string { return p.Name } func (p Person) SetName(s string) { p.Name = s } func main() { a := &Person{"Name", 1} t := reflect.TypeOf(*a) //必须取值,否则类型为空 fmt.Println(t.Name()) v := reflect.ValueOf(a).Elem() //a需要是引用 k := v.Type() for i := 0; i <...阅读全文

博文 2016-09-07 05:00:14 su_sai

go语言,变量引用的用法

package main import "fmt" func main() { //引用变量赋值 var a string afuzhi(&a) fmt.Println(a) fmt.Println("=========================") bianliang() } func afuzhi(b *string) { *b = "ccc" //fmt.Println(b) } func bianliang() { var a = [3]int{1, 2, 3} var b = &a b[1]++ fmt.Println(a, b) } /* 输出结果 ccc ========================= [1 3 3] &[1 3 3] *...阅读全文

博文 2015-06-17 23:07:23 xwiwi

go语言学习记录7

package main import "fmt" func main(){ slices := make([]int,5,10) bs := slices fmt.Println("before changing.......") for _,i := range slices{ fmt.Println(i) } for _,i := range bs{ fmt.Println(i) } slices[1]++ fmt.Println("after changing.......") for _,i := range slices{ fmt.Println(i) } for _,i := range bs{ fmt.Println(i) } }关于值语义与引用语...阅读全文

博文 2016-04-10 09:00:09 lwj1396