当前位置: 首页 > 知识库问答 >
问题:

如何做一个if-else语句?[副本]

况繁
2023-03-14

请看@accdias所指的https://golangdocs.com/ternary-operator-in-golang(见评论)

我可以像在 php 中那样在 go(golang) 中编写一个简单的带有变量赋值的 if-else 语句吗?例如:

$var = ( $a > $b )? $a: $b;

目前,我必须使用以下方法:

var c int
if a > b {
    c = a
} else {
    c = b
}

很抱歉,如果这个控制声明我记不起名字,我也无法在网站或谷歌搜索中找到信息。:/

共有3个答案

刘建中
2023-03-14

我经常使用以下方法

c := b
if a > b {
    c = a
}

基本上与@Not_a_Golfer相同,但使用类型推断。

秦彦君
2023-03-14

正如其他人提到的,Go不支持三元单行程序。但是,我编写了一个实用程序函数,可以帮助您实现您想要的。

// IfThenElse evaluates a condition, if true returns the first parameter otherwise the second
func IfThenElse(condition bool, a interface{}, b interface{}) interface{} {
    if condition {
        return a
    }
    return b
}

下面是一些测试用例,展示如何使用它

func TestIfThenElse(t *testing.T) {
    assert.Equal(t, IfThenElse(1 == 1, "Yes", false), "Yes")
    assert.Equal(t, IfThenElse(1 != 1, nil, 1), 1)
    assert.Equal(t, IfThenElse(1 < 2, nil, "No"), nil)
}

为了好玩,我编写了更多有用的实用程序函数,例如:

IfThen(1 == 1, "Yes") // "Yes"
IfThen(1 != 1, "Woo") // nil
IfThen(1 < 2, "Less") // "Less"

IfThenElse(1 == 1, "Yes", false) // "Yes"
IfThenElse(1 != 1, nil, 1)       // 1
IfThenElse(1 < 2, nil, "No")     // nil

DefaultIfNil(nil, nil)  // nil
DefaultIfNil(nil, "")   // ""
DefaultIfNil("A", "B")  // "A"
DefaultIfNil(true, "B") // true
DefaultIfNil(1, false)  // 1

FirstNonNil(nil, nil)                // nil
FirstNonNil(nil, "")                 // ""
FirstNonNil("A", "B")                // "A"
FirstNonNil(true, "B")               // true
FirstNonNil(1, false)                // 1
FirstNonNil(nil, nil, nil, 10)       // 10
FirstNonNil(nil, nil, nil, nil, nil) // nil
FirstNonNil()                        // nil

如果你想使用这些,你可以在这里找到https://github.com/shomali11/util

索卓
2023-03-14

正如评论所提到的,Go不支持三元一行程序。我能想到的最短形式是:

var c int
if c = b; a > b {
    c = a
}

但请不要这样做,这不值得,只会让阅读您代码的人感到困惑。

 类似资料:
  • 基本上,我要做的就是获取textfields数据,将其放入数组中,然后检查用户名/密码是否大于或等于6。我完全搞不懂为什么这总是要去别的地方?答案大概很明显,但我卡住了! 代码:

  • Swift 条件语句 一个 if 语句 后可跟一个可选的 else if...else 语句,else if...else 语句 在测试多个条件语句时是非常有用的。 当你使用 if , else if , else 语句时需要注意以下几点: if 语句后可以有 0 个或 1 个 else,但是如果 有 else if 语句,else 语句需要在 else if 语句之后。 if 语句后可以有 0

  • else语句可以与if语句结合使用。 else语句包含else语句中的条件表达式解析为0或FALSE值时执行的代码块。 else语句是一个可选语句, else后面最多只能有一个else语句。 语法 (Syntax) if...else语句的语法是 - if expression: statement(s) else: statement(s) 流程图 (Flow Diagram) 例

  • 我的程序有问题,我在使用if-else语句 在我的程序中,我试图计算字符串上的元音和辅音。我已经知道怎么做了,我的问题是我想添加一条“错误”消息,如果用户输入非字符串,它将显示错误框。 “尝试运行程序,用户将输入一个“字符串”,如果用户按“排序”,它将计算元音和辅音。我需要的是如果用户不会输入“字符串”,例如双精度或int…等等,只要它不是字符串,它就会显示错误框。

  • 我试图通过这段代码来展示我对Python的基础知识的了解,并且它可以工作: 我还想通过这段代码展示我对Java基础知识的了解,但它不起作用: 我很困惑,因为这一个确实有效: 你们知道怎么了吗?

  • 主要内容:if 语句,实例,if...else 语句,实例,if...else if...else 语句,实例,if...else 嵌套语句,实例Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: if 语句 if 语句有布尔表达式及之后的语句块组成。 语法 if 语句的语法格式如下: 如果布尔表达式为 true 则执行大括号内的语句块,否则跳过大括号内的语句块,执行大括号之后的语句块。 实