Я хотел бы иметь оператор инициализации в моем операторе 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
на два, что уродливо?