假设我们有 2 个字符串,str1 和 str2。我想要一个新变量 str3 等于 str1,或者如果 str1 为空则等于 str2。
在 JS 中我会写:
var str3 = str1 || str2
在 Go 中我必须这样做:
str3 := str1
if str1 == "" {
str3 = str2
}
我觉得有点太冗长了。 JS中有没有等价的表达方式?
最佳答案
Is there an equivalent expression as the one in JS?
不,但是如果你发现自己经常这样做,你可以编写一个函数来完成你想要完成的事情:
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]
}
用法:
str3 := strs(str1, str2)
关于javascript - Go 中是否有与此 JS 表达式等效的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36391058/