go中的快捷方式分配不包括空/零值


Shortcut assignment in go excluding empty/nil value

这可以在python/javascript中完成:

1
2
3
4
5
6
7
8
9
# Python:
a =""
b ="test"
c = a or b # test

// javascript
a ="";
b ="test";
c = a || b; // test

在不执行某些条件块的情况下,可以在go中完成相同的操作吗?到目前为止,我唯一能做到这一点的方法是使用条件块…

1
2
3
4
5
6
7
8
a :=""
b :="test"
var c
if a {
    c = a
} else {
    c = b
}

我认为这是一个答案,"不,这不能做",但我想我会问,以防万一我错了。这里的例子被简化了。变量ab可以在很久以前定义…


从golang FAQ,There is no ternary testing operation in Go. You may use the following to achieve the same result:

1
2
3
4
5
if expr {
    n = trueVal
} else {
    n = falseVal
}