《零基础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 是字符串,为值传递。

相关推荐
Erik_LinX几秒前
算法日记25:01背包(DFS->记忆化搜索->倒叙DP->顺序DP->空间优化)
算法·深度优先
Alidme7 分钟前
cs106x-lecture14(Autumn 2017)-SPL实现
c++·学习·算法·codestepbystep·cs106x
小王努力学编程8 分钟前
【算法与数据结构】单调队列
数据结构·c++·学习·算法·leetcode
最遥远的瞬间10 分钟前
15-贪心算法
算法·贪心算法
维齐洛波奇特利(male)1 小时前
(动态规划 完全背包 **)leetcode279完全平方数
算法·动态规划
项目申报小狂人2 小时前
改进收敛因子和比例权重的灰狼优化算法【期刊论文完美复现】(Matlab代码实现)
开发语言·算法·matlab
让我们一起加油好吗2 小时前
【排序算法】六大比较类排序算法——插入排序、选择排序、冒泡排序、希尔排序、快速排序、归并排序【详解】
c语言·算法·排序算法
夏末秋也凉2 小时前
力扣-贪心-53 最大子数组和
数据结构·算法·leetcode
liruiqiang053 小时前
机器学习 - 投票感知器
人工智能·算法·机器学习
学编程的小程8 小时前
LeetCode216
算法·深度优先