- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我一直在做很多循环来过滤值,有时甚至将 slice 转换为具有方便索引的映射来实现这一点,但我觉得这可能不是在 Go 中实现它的最佳方式。所以:
考虑以下样板代码,在 people
slice 上找到名为“Bob”的第一个人的最惯用方法是什么? found
应该是一个 bool 变量,以确定是否找到了名为“Bob”的人。
package main
import "fmt"
type Person struct {
Age int
Name string
}
var people=[]Person{{Age:18,Name:"Deb"},{Age:22,Name:"Bob"},{Age:35,Name:"Bob"}}
func main() {
FirstBob, found := // how to pick first "Bob"?
fmt.Println(FirstBob)
}
更一般化:从符合特定条件的 slice 中选取第一个值的最惯用方法是什么?
最佳答案
例如,
package main
import "fmt"
type Person struct {
Age int
Name string
}
var people = []Person{{Age: 18, Name: "Deb"}, {Age: 22, Name: "Bob"}, {Age: 35, Name: "Bob"}}
func findPerson(people []Person, name string) (Person, bool) {
for _, p := range people {
if p.Name == name {
return p, true
}
}
return Person{}, false
}
func main() {
FirstBob, found := findPerson(people, "Bob")
if found {
fmt.Println(FirstBob)
}
}
输出:
{22 Bob}
如果你想返回一个指向Person
结构的指针,
package main
import "fmt"
type Person struct {
Age int
Name string
}
var people = []Person{{Age: 18, Name: "Deb"}, {Age: 22, Name: "Bob"}, {Age: 35, Name: "Bob"}}
func findPerson(people []Person, name string) (*Person, bool) {
for i := range people {
p := &people[i]
if p.Name == name {
return p, true
}
}
return nil, false
}
func main() {
FirstBob, found := findPerson(people, "Bob")
if found {
fmt.Println(*FirstBob)
}
}
输出:
{22 Bob}
关于go - 根据 Go 中的条件从 slice 中选取值的最惯用方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27209100/
这个问题在这里已经有了答案: final keyword in method parameters [duplicate] (9 个回答) 关闭 8 年前。 在此示例中,声明 Object fina
我的目标:是通过我的函数更新字段获取选定值并使用函数输出值运行它。 问题:当我从列表中选择值时,它不会触发函数,也不会更新字段。 感谢您的帮助。 HTML 12 14 16 18 20 22 24
我有一本具有这种形式的字典: myDict = {'foo': bar, 'foobar baz': qux} 现在,我想拆分字典键中的空格,使其成为下一个键并获取值(重复)。 myDictRev1
vector a; vector b; int temp_holder; cout > temp_holder) a.push_back(temp_holder); cout > temp_h
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿。当然,我
我正在使用 jquery ui 日期选择器来获取 fromDate 和 toDate 以下是from日期的代码 $("#from_date").datepicker({
我是一名优秀的程序员,十分优秀!