Golang中strings.Contains和strings.ContainsAny的区别

6
在源代码中:
// Contains returns true if substr is within s.
func Contains(s, substr string) bool {
    return Index(s, substr) >= 0
}

// ContainsAny returns true if any Unicode code points in chars are within s.
func ContainsAny(s, chars string) bool {
    return IndexAny(s, chars) >= 0
}

唯一的区别似乎是 substrchars 中的 Unicode 代码点。我编写了一些测试来测试它们两者。它们的行为似乎是相同的。我不理解何时使用哪个。

2个回答

12

我认为这两个函数完全不同。Contains被用来检测一个字符串是否包含另一个子字符串。ContainsAny被用来检测一个字符串是否包含提供的字符串中的任何字符。


2
你也可以查看http://golang.org/pkg/strings/#ContainsAny。那里已经有很多例子了。 - Xiaotian Pei

0

Contains 函数报告字符串中是否包含子字符串。而 ContainsAny 函数报告字符集合 chars 中的任何 Unicode 代码点是否在字符串中。请参考 documentation

 func main() {
     fmt.Println(strings.Contains("seafood", "aes"))
     fmt.Println(strings.ContainsAny("seafood", "aes"))
     fmt.Println(strings.Contains("iiii", "ui"))
     fmt.Println(strings.ContainsAny("iiii", "ui"))
 }

输出结果为:

false
true
false
true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接