一条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
uc浏览器网页版入口官网-手机/电脑uc浏览器网页版入口地址
little fox官方网站入口地址-little fox网页版中国官网入口地址
樱花动漫网官网在线观看入口-樱花动漫网最新网页版入口地址2026
剑桥少儿英语官网入口网址-剑桥少儿英语网页版入口地址
手机百度网盘登录入口地址-百度网盘手机网页版登录入口地址
192.168.1.1无线路由怎么访问?192.168.1.1无线路由器设置登录入口地址