我目前正在学习Golang,我决定编写一些简单的算法来学习语法.我希望它不是已经答案,但我没有找到它..
我有交换字符串的问题
func swap(str1, str2 string) {
/*
* Also possible :
* str1, str2 = str2, str1
*/
// str1, str2 = str2, str1
tmp := str1
str1 = str2
str2 = tmp
}
func main() {
a := "World !"
b := "Hello"
swap(a, b)
fmt.Printf("a=%s\nb=%s\n", a, b)
}
Run Code Online (Sandbox Code Playgroud)
为什么这段代码不起作用?
交换str1和str2不改变a和b,因为他们是副本a和b.使用指针:
func swap(str1, str2 *string) {
*str1, *str2 = *str2, *str1
}
func main() {
a := "salut"
b := "les gens"
swap(&a, &b)
fmt.Printf("a=%s\nb=%s\n", a, b)
}
Run Code Online (Sandbox Code Playgroud)
http://play.golang.org/p/Qw0t5I-XGT
| 归档时间: |
|
| 查看次数: |
856 次 |
| 最近记录: |