我刚刚开始学习 Golang 语言!在 for 循环中,我看到有时添加下划线或不添加下划线。
无论是否添加_,我都得到了相同的结果。
package main
import (
"fmt"
)
func main() {
doSomething()
sum := addValues(5, 8)
fmt.Println("The sum is", sum)
multiSum, multiCount := addAllValues(4, 7, 9)
fmt.Println("multisum", multiSum)
fmt.Println("multiCount", multiCount)
}
func doSomething() {
fmt.Println("Doing Something")
}
func addValues(value1 int, value2 int) int {
return value1 + value2
}
func addAllValues(values ...int) (int, int) {
total := 0
for _, v := range values {
total += v
}
return total, len(values)
}
Run Code Online (Sandbox Code Playgroud)
func addAllValues(values ...int) (int, int) {
total := 0
for v := range values {
total += v
}
return total, len(values)
}
Run Code Online (Sandbox Code Playgroud)
我只知道我不关心索引。这就是全部?或者还有什么我必须知道的?
我真的很感谢你的帮助!
对于range过度切片:
for v := range values {是v切片中元素的索引。for _, v := range values {是v实际的元素值。for i, v := range values {是i索引,v是元素。for i, _ := range values {是i切片中元素的索引。您可以运行这个游乐场示例来查看差异。
Range expression 1st value 2nd value
array or slice a [n]E, *[n]E, or []E index i int a[i] E
string s string type index i int see below rune
map m map[K]V key k K m[k] V
channel c chan E, <-chan E element e E
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅规范。