整形:值传递

package mainimport "fmt"func Swap(num1, num2 int) {num1, num2 = num2, num1fmt.Println(num1, num2)
}
func main() {num1 := 10num2 := 20Swap(num1, num2)fmt.Println(num1, num2)
}

字符串:值传递

package mainimport "fmt"func Swap(s1, s2 string) {s1, s2 = s2, s1fmt.Println(s1, s2)
}
func main() {s1 := "aaaaaaa"s2 := "bbbbbbb"Swap(s1, s2)fmt.Println(s1, s2)
}

数组:值传递

package mainimport "fmt"func Swap(array [3]int) {array[0] = 0array[1] = 1array[2] = 2fmt.Println(array)
}
func main() {array := [3]int{8, 8, 8}Swap(array)fmt.Println(array)
}

切片:地址传递

package mainimport "fmt"func Swap(slice []int) {slice[0] = 0slice[1] = 1slice[2] = 2fmt.Println(slice)
}
func AppendTest(slice []int) {slice = append(slice, 4)
}
func AppendTest1(slice []int) []int {slice = append(slice, 4)return slice
}
func main() {slice := []int{8, 8, 8}Swap(slice)fmt.Println(slice)AppendTest(slice)fmt.Println(slice)slice = AppendTest1(slice)fmt.Println(slice)
}

注意:如果在调用的函数中,原始切片的容量发生了改变,系统就会在新的地址生成新的切片,原始切片不会发生变化。

map:地址传递

package mainimport "fmt"func test(m map[int]string){delete(m,1)
}func main(){m := map[int]string{1:"make",2:"Go"}test(m)fmt.Println(m)
}

结构体:值传递

package mainimport "fmt"type Student struct {id   intname string
}func test(stu Student) {stu.id = 2stu.name = "李四"fmt.Println(stu)
}func main() {stu := Student{1, "张三"}test(stu)fmt.Println(stu)
}

指针:地址传递

&变量 取地址操作 引用运算符

*指针变量 取值操作 解引用运算符

package mainimport "fmt"type Student struct {id   intname string
}func Swap(num1, num2 *int) {*num1, *num2 = *num2, *num1fmt.Println(*num1, *num2)
}func main() {a := 10b := 20c := &ad := &bSwap(c, d)fmt.Println(*c, *d)
}

Go基础:不同数据类型作为函数参数传递值传递/地址(引用)传递判断相关推荐

  1. c#数据类型的值传递和引用传递--基础拾遗

    竟然一不小心犯了低级错误,数据类型的值类型和引用类型弄混了. 想用list记录下所有的二维数组值,结果发现list里所有的值都是一样的. 值类型和引用类型: C#数据类型分为两大类:值类型和引用类型. ...

  2. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  3. C语言基础:数组作为函数参数传递演示源码

    将做工程过程中常用的内容片段记录起来,如下内容内容是关于C语言基础:数组作为函数参数传递演示的内容,应该能对小伙伴也有好处. #include <stdio.h>void show_arr ...

  4. c语言 函数参数传递 值传递,c语言中函数参数的三种传递方式——值传递、指针传递、引用传递...

    函数参数有三种传递方式值传递.指针传递.引用传递. 1.值传递 将已经初始化的变量值(或常量)传递到函数中. 例如: int func(int value) { int ret = value++; ...

  5. Python的函数参数传递:传值?引用?

    From: http://blog.csdn.net/winterttr/article/details/2590741 作者:winterTTr (转载请注明) 我想,这个标题或许是很多初学者的问题 ...

  6. 基础回顾(正则、循环、和、 int和Integer、String /StringBuffer、Array和ArrayList、值传递和引用传递、 Lamda、java8)

    1. 正则表达式 1.1 Java中是如何支持正则表达式操作的? Java中的String类提供了支持正则表达式操作的方法,包括:matches().replaceAll().replaceFirst ...

  7. java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

    java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递.Java编程语言只有值传递参数. 当一个对象实 ...

  8. 【重难点】【Java基础 04】值传递和引用传递、序列化和反序列化

    [重难点][Java基础 04]值传递和引用传递.序列化和反序列化 文章目录 [重难点][Java基础 04]值传递和引用传递.序列化和反序列化 一.值传递和引用传递 1.对比 二.序列化 1.基本概 ...

  9. Javascript 之《函数传参到底是值传递还是引用传递》

    前言 这个问题其实困惑了我好久,但是在实际使用中总是得过且过,不想去深究.由于这种态度,在学习 Javascript 过程中,水平一直都是出于半桶水状态,很多概念和原理似懂非懂,模糊不清. 所以,写了 ...

  10. Java中的参数传递,到底是值传递还是引用传递?

    文章内容为转载,转载自公众号Hollis关于我要彻底给你讲清楚,Java就是值传递,不接受争辩的那种! 原文链接:我要彻底给你讲清楚,Java就是值传递,不接受争辩的那种! 知乎回答链接:Java 到 ...

最新文章

  1. 大数据分布式集群搭建(插曲)
  2. ASP.NET MVC 2
  3. Step By Step_Java通过JNI调C程序执行
  4. Spark-shell和Spark-hive的使用
  5. DCASE挑战赛原始提案文件(详细信息)
  6. python取前三位_Python 实现取多维数组第n维的前几位
  7. 计算机中丢失msc,mscvr120.dll32位/64位版_修复计算机中丢失msvcr120.dll
  8. 360互联网技术训练营第七期 -“遇见”PIKA
  9. 如何验证登录oracle,Oracle登录验证方式详解
  10. 经历越多困难,你就变的更韧性
  11. python barh_Python matplotlib.axes.Axes.barh()用法及代码示例
  12. 获得Azure订阅LoadBalancer的脚本
  13. 高并发高负载系统架构-php篇
  14. [题解]诸侯安置(dp+组合)
  15. Struts框架详解
  16. Delphi7--循环结构语句
  17. dp在约会上是什么意思_dp是什么意思网络术语 饭圈为什么喜欢用缩写
  18. UnityShader实现漫反射光照模型和高光反射光照模型
  19. Moss 2007 入门(1) - 功能概述
  20. 百度、百事、大众、脸书、WeWork、领航等公司高管变动

热门文章

  1. 5.微服务设计 --- 分解单块系统
  2. 11. jQuery - Chaining
  3. 11. Window open() 方法
  4. 51Nod1253 Kundu and Tree 容斥原理
  5. 【BZOJ 3652】大新闻 数位dp+期望概率dp
  6. Java学习之基本概念
  7. Mysql索引会失效的几种情况
  8. WebBrowser.ObjectForScripting 属性的使用
  9. golang+linux+pipline
  10. matlab求最大公约数和最小公倍数