If statement GoLang,如果条件允许,如何编写多行语句
我想将下面的If statement GoLang,如果条件允许,如何编写多行语句,if-statement,go,comparison,If Statement,Go,Comparison,我想将下面的a值与b,c,d,e,f同时匹配,而不是像这样多次写入 我的价值观是: a = 11 b = 22 c = 33 d = 44 e = 55 f = 66 if a != b && a != c && a != d && a != e && a != f{ // Do something } else{ // Do something else } 是我的实际工作代码方法 但我想把它写成这样 if a
a
值与b
,c
,d
,e
,f
同时匹配,而不是像这样多次写入
我的价值观是:
a = 11
b = 22
c = 33
d = 44
e = 55
f = 66
if a != b && a != c && a != d && a != e && a != f{
// Do something
} else{
// Do something else
}
是我的实际工作代码方法
但我想把它写成这样
if a != b or c or d or e or f {print text}
在if语句中应使用一次
值。有什么简单的方法吗?实际上,您可以通过一个开关
语句来实现这一点:
a, b, c, d, e, f := 1, 2, 3, 4, 5, 6
switch a {
case b, c, d, e, f:
fmt.Println("'a' matches another!")
default:
fmt.Println("'a' matches none")
}
以上内容的输出(在上尝试):
使用开关
是最干净、最快的解决方案
另一种解决方案是列出要比较的a
值,并使用for
循环对其进行范围设置并进行比较:
这就是它的样子:
match := false
for _, v := range []int{b, c, d, e, f} {
if a == v {
fmt.Println("'a' matches another!")
match = true
break
}
}
if !match {
fmt.Println("'a' matches none")
}
输出是相同的。试一试这个。虽然这更详细、效率更低,但它的优点是要比较的值可以是动态的,例如在运行时确定,而开关
解决方案必须在编译时确定
同时检查相关问题:我将使用
开关
语句
a := 11
b := 22
c := 33
d := 44
e := 55
f := 66
switch a {
case b, c, d, e, f:
default:
fmt.Println("Hello, playground")
}
它的相关/可能的副本非常有用,在这方面我们可以使用简单的方法来比较多个值,如a或b马赫数c、d、e、f开关a、b{案例c、d、e、f:fmt.Println(“'a或b'匹配另一个!”)默认值:fmt.Println('a或b'匹配无”)},switch版本还可以用作对照类型列表检查接口变量的紧凑方法。例子:
a := 11
b := 22
c := 33
d := 44
e := 55
f := 66
switch a {
case b, c, d, e, f:
default:
fmt.Println("Hello, playground")
}