go中引用类型(go值传递)

zydadmin2024-04-25  27

Go中引用类型(GO值传递)

Go语言是一种强类型的语言,不会出现隐式类型转换的情况。在函数调用时,参数传递的是值而非引用。然而在Go中也有引用类型(例如指针、slice、map、channel等),它们在函数调用时也是按值传递的。本文将详细介绍Go中引用类型的传递方式。

Go值传递

在Go中,函数的参数都是值传递的。这意味着函数调用时,传递的是变量的副本而非变量本身。如果我们修改函数内的参数值,不会影响到外部变量的值。例如:

func addOne(num int) {

num

}

func main() {

x := 1

addOne(x)

fmt.Println(x) // 输出 1

}

另一个例子:

func changeName(name string) {

name = "John"

}

func main() {

myName := "Alice"

changeName(myName)

fmt.Println(myName) // 输出 Alice

}

Go引用类型

Go的引用类型包括指针、slice、map、channel等。与值类型不同,引用类型变量在声明时并没有分配内存空间,而是在运行时根据需要动态分配内存。因此,引用类型变量需要使用make或new关键字进行初始化。例如:

// 初始化slice变量

nums := make([]int, 10)

// 初始化map变量

m := make(map[string]int)

// 初始化指针变量

x := new(int)

引用类型的传递

虽然引用类型是按值传递的,但是它们传递的是指向底层数据结构的指针。因此,在函数内部修改引用类型变量的值,会影响到原始变量的值。例如:

func changeSlice(nums []int) {

nums[0] = 100

}

func main() {

nums := []int{1, 2, 3}

changeSlice(nums)

fmt.Println(nums) // 输出 [100, 2, 3]

}

func changeMap(m map[string]int) {

m["Bob"] = 30

}

func main() {

ages := make(map[string]int)

ages["Alice"] = 25

changeMap(ages)

fmt.Println(ages) // 输出 map[Alice:25 Bob:30]

}

最后的总结

在Go语言中,即使是引用类型也是按值传递的。不过,引用类型传递的是指向底层数据结构的指针,因此在函数内部修改引用类型变量的值,会影响到原始变量的值。为了避免出现不必要的问题,建议使用值类型(如int、float、bool等)传递参数,同时谨慎使用指针、slice、map、channel等引用类型。

转载请注明原文地址:http://www.2345lzwz.cn/read-320760.html
上一篇下一篇
00

randomThread
(11-2热点)-雷军辟谣“偷喝员工酸奶”:纯属谣传,我也烦得不得了(11-2热点)-雷军辟谣“偷喝员工酸奶”:真相到底是什么?男女相遇的句子唯美(相识相知相爱相守相伴句子).docx免费下载(word版可打印)名人比喻书的句子(书的名句经典语录).docx免费下载(word版可打印)名著经典句子摘抄(八年级名著摘抄).docx免费下载(word版可打印)内涵别人没脑子的句子(暗讽别人蠢而不自知的句子).docx免费下载(word版可打印)难得一见闺蜜短句暖心(让闺蜜一秒泪崩的句子).docx免费下载(word版可打印)名人名言哲理语录短句(经典句子人生感悟短句).docx免费下载(word版可打印)母亲写给高中女儿的鼓励信(高三女儿的励志句子).docx免费下载(word版可打印)母亲爱女儿的唯美句子简短(母与子温馨短句).docx免费下载(word版可打印)名人关于爱情的经典句子(名人的爱情句子).docx免费下载(word版可打印)那地方的云那么洁白仿写句子(那么洁白柔软吗造句).docx免费下载(word版可打印)年龄改变了心境的句子(不同年龄不同心态的句子).docx免费下载(word版可打印)年会朋友圈文案高级短句(年会发圈吸引人的句子).docx免费下载(word版可打印)模仿叮咚叮咚写春天的句子(仿写那是春天的琴声吧).docx免费下载(word版可打印)母亲一周年祭日怀念句子(一周年忌日注意).docx免费下载(word版可打印)男人稳重成熟说说短句(成熟干净的句子).docx免费下载(word版可打印)母爱暖心的句子(母爱感人句子).docx免费下载(word版可打印)母爱结尾的句子(摘抄母爱优美句段).docx免费下载(word版可打印)描写中年人眼睛的句子(表达眼睛的特点写一段话).docx免费下载(word版可打印)拟人句三年级下册长句子(描写动物的拟人句).docx免费下载(word版可打印)明眸皓齿造句子大全(用悠然自得造句).docx免费下载(word版可打印)年会短句八个字(年会发圈吸引人的句子).docx免费下载(word版可打印)男生外貌描写的句子(精致清冷少年的外貌描写).docx免费下载(word版可打印)难报养育恩最美句子(亏欠父母的伤感句子).docx免费下载(word版可打印)母爱的排比句简短(关于母爱的排比句子大全).docx免费下载(word版可打印)年龄幽默的说说(调侃自己年纪大的幽默句子).docx免费下载(word版可打印)母爱的文案唯美句子(写母亲的优美句子).docx免费下载(word版可打印)母亲牵挂孩子的短句子简短(心里牵挂孩子的心情短语).docx免费下载(word版可打印)拟人句三年级下册长句子(三年级掌握的拟人句).docx免费下载(word版可打印)名著里表达爱意的句子(名著小说中的隐晦表白情话).docx免费下载(word版可打印)母亲生日发朋友圈的句子简短(写给自己的生日朋友圈).docx免费下载(word版可打印)母爱的句子唯美结尾(关于母爱的结尾优秀段).docx免费下载(word版可打印)母亲牵挂孩子的短句子诗词(怀念母亲的诗).docx免费下载(word版可打印)名人描写眼睛的句子简短(哲理性句子名人名言).docx免费下载(word版可打印)明亮的眼睛写一段话(赞美小眼睛的句子).docx免费下载(word版可打印)年会朋友圈软文(年会发圈吸引人的句子).docx免费下载(word版可打印)母爱的句子唯美结尾(母爱名言).docx免费下载(word版可打印)男人励志短句(激发男人斗志的正能量句子).docx免费下载(word版可打印)母爱的句子唯美结尾简短(关于母爱的结尾句).docx免费下载(word版可打印)名人词句优美的句子(句句深入人心经典句子).docx免费下载(word版可打印)难熬的夜班的幽默句子(熬夜发个幽默朋友圈).docx免费下载(word版可打印)拟人的修辞手法的句子怎么写(小学修辞手法有哪些).docx免费下载(word版可打印)母亲爱孩子的唯美句子简短(晒儿子霸气句子).docx免费下载(word版可打印)男孩儿励志的句子(对男孩子鼓励与期望的话语).docx免费下载(word版可打印)你的孝心感动我的句子(懂得感恩孝顺的句子).docx免费下载(word版可打印)名言名句大全人生哲理初中(哲理句子精辟).docx免费下载(word版可打印)男生给女生发早安的语句怎么说(早安调皮句子).docx免费下载(word版可打印)母爱开头结尾的优美句子简短(关于母爱的开头结尾优美语段).docx免费下载(word版可打印)年过半百感悟人生句子(半生已过的伤感句子).docx免费下载(word版可打印)母爱文案高级感人句子(父母亲情文案).docx免费下载(word版可打印)母亲牵挂孩子的短句子说说(心里牵挂孩子的心情短语).docx免费下载(word版可打印)民间老人言大全(老人的智慧句子).docx免费下载(word版可打印)名言通怎么注册(名言通怎么搜索句子).docx免费下载(word版可打印)难忘同窗情金句幽默(老同学聚会经典句子).docx免费下载(word版可打印)名人名言哲理句子(名人名言).docx免费下载(word版可打印)名人情话名言(名人表白的经典句子).docx免费下载(word版可打印)母亲对女儿的期望与鼓励的句子(对女儿的期望与祝福语).docx免费下载(word版可打印)名言名句摘抄大全简短励志(励志的句子致自己简短).docx免费下载(word版可打印)母爱的优美结尾(写母爱有深度的结尾句子).docx免费下载(word版可打印)
New Post(0)