《零基础Go语言算法实战》【题目 2-5】函数参数的值传递和引用传递

《零基础Go语言算法实战》

【题目 2-5】函数参数的值传递和引用传递

下面代码的输出是什么?

package main

import "fmt"

type Test struct {

array []int

str string

}

func asign(t Test) {

t.array[0] = 88

t.str = "Go is good"

}

func main() {

var t = Test{

array: []int{66, 6, 88},

str: "I Love Go",

}

asign(t)

fmt.Println(t.array[0])

fmt.Println(t.str)

}

【解答】

88

I Love Go

原因:调用 asign()函数时,虽然是传值,但在asign()函数中,字段array是切片,为引用传递;

str 是字符串,为值传递。

相关推荐
颜酱3 小时前
一步步实现字符串计算器:从「转整数」到「带括号与优化」
javascript·后端·算法
Qinana4 小时前
从 URL 输入到页面展示:一场跨越进程与协议的“装修”大戏
前端·面试·程序员
舒一笑21 小时前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
郑鱼咚1 天前
现在的AI热潮,恰恰证明了这个世界就是个草台班子
前端·人工智能·程序员
CoovallyAIHub1 天前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
木心月转码ing1 天前
Hot100-Day14-T33搜索旋转排序数组
算法
子玖1 天前
让你的文章里俏皮的添加emoji
程序员·markdown·visual studio code
会员源码网1 天前
空指针异常(NullPointerException)全解析
程序员
会员源码网1 天前
内存泄漏(如未关闭流、缓存无限增长)
算法