具有多个返回值的方法的“ if”初始化语句

时间:2018-11-23 18:20:02

标签: if-statement go

我想在我的if语句中使用初始化语句,该语句实际上使用了几种返回多个值的方法。示例:

func HandleArgs(args ...interface{}) {
     // Some additional checks here

     if value1, ok1, value2, ok2 := args[0].(string), args[1].(string); ok1 && ok2 {
          // Do something
     }
}

Go不允许我这样做,出现错误:

assignment mismatch: 4 variables but 2 values

考虑到编译器可以轻松处理一种返回2个值的方法,这更令人困惑:

// it is OK!
if value, ok := args[0].(string); ok {
}

除了将一个if语句一分为二,这很难看之外,还有什么方法可以做?

1 个答案:

答案 0 :(得分:1)

您不能使用以上语法。

您可以像这样对花括号使用作用域。

CREATE TABLE customer (
    customer_id      INT NOT NULL,
    name             VARCHAR2(30) NOT NULL,
    date_of_birth    DATE,
    phone_nb         CHAR(8) NOT NULL,
    address          VARCHAR(50),
    total_spending   FLOAT DEFAULT 0.0 NOT NULL,
    PRIMARY KEY ( customer_id )
);