作为序言我来自python,在那里我将有一个列表,其中包含我的值而不是字符串切片,并执行“if x in list”。如果我做错了,请告诉我。
我需要从用户那里获取输入,如果它包含在我的切片字符串中然后中断我的循环并继续,否则再次提示用户。现在我有这个
package main
import (
"bufio"
"fmt"
"os"
"os/exec"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
foundfdb := false
fdbslices := []string{"f", "d", "b", "files", "directories", "both"}
for {
fmt.Print("Files, Directories, or Both: ")
fdb, _ := reader.ReadString('\n')
fdb = strings.ToLower(fdb)
for i := range fdbslices {
if strings.ContainsAny(fdbslices[i], fdb) {
foundfdb = true
}
}
if foundfdb = true {
break
}
}
}
似乎ContainsAny()给了我一些误报。必须有一种更简单的方法来做到这一点,还是有?
答案 0 :(得分:4)
ContainsAny
允许您查找特定字符串中的特定字符,我认为这不是您想要的。对于我的一个项目,我实现了一个函数来查找切片中的字符串:
func InArray(a []string, e string) bool {
for _, x := range a {
if x == e {
return true
}
}
return false
}