假设我们有2个字符串,str1和str2。我想要一个新的变量str3等于str1,或者如果str1为空则等于str2。
在JS中我会写:
var str3 = str1 || str2
在Go中,我必须这样做:
str3 := str1
if str1 == "" {
str3 = str2
}
这是一个有点过于冗长的imo。 是否有与JS中的表达式相同的表达式?
答案 0 :(得分:2)
是否有与JS中的表达式相同的表达式?
不,但如果你发现自己经常这样做,你可以编写一个功能来完成你想要完成的任务:
aria-label
用法:
func strs(s ...string) string {
if len(s) == 0 {
return ""
}
for _, str := range s[:len(s)-1] {
if str != "" {
return str
}
}
return s[len(s)-1]
}
答案 1 :(得分:0)
Go中没有等效的操作。你必须使用if(或一个开关,但更加冗长)。我会这样写:
var str3 string
if str1 != "" {
str3 = str1
} else {
str3 = str2
}