Go语言中与C++初始化列表相对应的是什么?

huangapple go评论89阅读模式
英文:

What is the Go equivalent of C++ initializer lists?

问题

在Go语言中,可以使用以下等效的惯用模式:

keys := []string{"foo", "bar", "baz"}
for _, key := range keys {
    DoSomeThingWithKey(key)
}

在Go中,我们使用切片(slice)来表示一组元素,类似于C++中的std::initializer_list。上述代码创建了一个包含字符串元素的切片keys,然后使用range关键字遍历切片并执行相应的操作。

英文:

In C++, I might do the following:

for (const string& key : {"foo", "bar", "baz"}) {
  DoSomeThingWithKey(key);
}

The {"foo", "bar", "baz"} is a std:initializer_list. Awesomeness.

Is there an equivalent idiomatic pattern for Go?

答案1

得分: 4

只需使用切片:

for _, value := range []string{"foo", "bar", "baz"} {
    fmt.Println(value)
}

或者使用数组:

for _, value := range [...]string{"foo", "bar", "baz"} {
    fmt.Println(value)
}
英文:

Simply use a slice:

for _, value := range []string{"foo", "bar", "baz"} {
	fmt.Println(value)
}

or alternatively an array:

for _, value := range [...]string{"foo", "bar", "baz"} {
	fmt.Println(value)
}

huangapple
  • 本文由 发表于 2015年5月28日 03:48:47
  • 转载请务必保留本文链接:https://go.coder-hub.com/30491865.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定