一条go语句就意味着并发执行一个函数。当循环迭代执行go语句时,要注意参数传递常见的一个疏忽。
如下:
| 代码如下 | 复制代码 |
|
package main | |
结果打印的全是golang字符串,跟我们预期不一样。
这是因为每次迭代都会给变量lang赋值,当迭代完毕后,3个goroutine还没有执行,当执行是而变量lang的值是最后一次迭代的值。
如果不想使用外部变量,可以通过添加参数:
| 代码如下 | 复制代码 |
|
func main() { | |
以下是交换函数 swap() 使用了引用传递:
/* 定义交换值函数*/
| 代码如下 | 复制代码 |
|
func swap(x *int, y *int) { | |
以下我们通过使用引用传递来调用 swap() 函数:
| 代码如下 | 复制代码 |
|
package main import "fmt" func main() { fmt.Printf("交换前,a 的值 : %dn", a ) /* 调用 swap() 函数 fmt.Printf("交换后,a 的值 : %dn", a ) func swap(x *int, y *int) { | |
以上代码执行结果为:
交换前,a 的值 : 100
交换前,b 的值 : 200
交换后,a 的值 : 200
交换后,b 的值 : 100
疯狂医院达什医生中文版(Crazy Hospital)
疯狂医院达什医生最新版是一款医院模拟经营类游戏,逼真的场景画
宝宝庄园官方版
宝宝庄园官方版是一款超级经典好玩的模拟经营类型的手游,这个游
桃源记官方正版
桃源记是一款休闲娱乐类的水墨手绘风格打造的模拟经营手游。玩家
长途巴士模拟器手机版
长途巴士模拟器汉化版是一款十分比真好玩的大巴车模拟驾驶运营类
房东模拟器最新版2024
房东模拟器中文版是一个超级有趣的模拟经营类型的手游,这个游戏