gpt4 book ai didi

go - 下划线(_)在 for 循环 Golang 中有什么作用?

转载 作者:行者123 更新时间:2023-12-05 01:05:04 33 4
gpt4 key购买 nike

我刚刚开始学习 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)
}
func addAllValues(values ...int) (int, int) {
total := 0
for v := range values {
total += v
}
return total, len(values)
}

我只知道我不关心索引。这就是全部?或者还有什么我必须知道的??

非常感谢您的帮助!

最佳答案

对于 slices 上的 range:

  1. for v := range values { 中,v 是 slice 中元素的索引。
  2. for _, v := range values { 中,v 是实际的元素值。
  3. for i, v := range values { 中,i 是索引,v 是元素。
  4. for i, _ := range values { 中,i 是 slice 中元素的索引。

您可以运行 this playground示例以查看差异。


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

更多详情见spec .

关于go - 下划线(_)在 for 循环 Golang 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71108290/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com