javascript - Go 中是否有与此 JS 表达式等效的内容?

标签 javascript string go

假设我们有 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)

https://play.golang.org/p/Gl_06XDjW4

关于javascript - Go 中是否有与此 JS 表达式等效的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36391058/

相关文章:

javascript - ionic 响应表填充

javascript - 如何在悬停时停止 jQuery 函数?

Python 正则表达式 - 扩展字符串

java - 使用Java检查两个html标签是否包含不同顺序的相同属性

go - 结构体方法的参数传递语义是否完全由方法而不是调用者决定?

Go:一个生产者多个消费者

map - golang map 比较 : partial match

javascript - 将 HTML slider 'max' 范围绑定(bind)到输入字段的值

java - 编译错误尝试修复,没有成功

javascript - 如何从 React 或 Javascript 中的对象属性获取值