假设我在解释器中输入以下代码:
var1 = 'zuuzuu'
现在假设我输入:
var1.find('a')
解释器返回-1。我理解,因为尚未找到子字符串。但请帮助我理解这一点:
var1.find('a' or 'z') #case 1
返回-1
但是
var1.find('a' and 'z') #case 2
返回 0
根据我头脑中的逻辑,解释器应该为情况 2 返回 -1,因为子字符串“a”和“z”不在字符串中。而在情况 1 中,应该返回 0,因为 'z' 是一个子字符串。
谢谢
请您参考如下方法:
表达式 'a' or 'z' 总是产生 'a'。表达式 'a' and 'z' 总是产生 'z'。它不是某种用于对容器进行查询的 DSL,它是一个简单的 bool 表达式(并且使用其结果调用 find)。如果你想说“字符串中有'a'或'z'”,你需要做
var1.find('a') != -1 or var.find('z') != -1
对于第二个(字符串中的 'a' 和 'z'):
var1.find('a') != -1 and var.find('z') != -1
