如何确定切片中存在的元素的位置?
我需要以下内容:
type intSlice []int
func (slice intSlice) pos(value int) int {
for p, v := range slice {
if (v == value) {
return p
}
}
return -1
}
Run Code Online (Sandbox Code Playgroud) Go有类似Python的in关键字吗?我想检查一个值是否在列表中.
例如在Python中:
x = 'red'
if x in ['red', 'green', 'yellow', 'blue']:
print "found"
else:
print "not found"
Run Code Online (Sandbox Code Playgroud)
在Go中,我想出了使用set惯用法,但我不认为这是理想的,因为我必须指定一个我没有使用的int值.
x := "red"
valid := map[string]int{"red": 0, "green": 0,"yellow": 0, "blue": 0}
if _, ok := valid[x]; ok {
fmt.Println("found")
} else {
fmt.Println("not found")
}
Run Code Online (Sandbox Code Playgroud)
我知道有一个in关键字可能与泛型有关.有没有办法使用go generate或其他东西来做到这一点?