我有以下if条件来计算字符串的长度
foo
-它应该始终为16或19个字符。看起来像是
abcd-efgh-ijkl-mnop
或
abcdefghijklmnop
.
func ValidateFoo(...) error {
if len(foo) != 16 || len(foo) != 19 {
return fmt.Errorf("foo should be 16 or 19 characters, %q %d",
foo,
len(foo),
)
}
...
}
(在我看来)这在语法上是正确的,但当我对这个函数运行测试时,它们失败了,出现了“foo应该是16或19个字符”的错误。
奇怪的是,在
Errorf()
,
这个
len()
始终为16或19个字符
,这显然毫无意义。如:
got error: supplied key is not 16 or 19 characters, key "foo should be 16 or 19 characters" 19
我的if语句错了吗?
编辑:
我的if语句是错误的。应使用逻辑AND not OR
https://stackoverflow.com/a/72889607/8859720