В Go следующие работы (обратите внимание, что одно использование карты имеет одно возвращение, другое имеет два возврата)
package main
import "fmt"
var someMap = map[string]string { "some key": "hello" }
func main() {
if value, ok := someMap["some key"]; ok {
fmt.Println(value)
}
value := someMap["some key"]
fmt.Println(value)
}
Однако я понятия не имею, как это сделать с моей собственной функцией. Возможно ли иметь подобное поведение с необязательным возвратом, например, map
?
Например:
package main
import "fmt"
func Hello() (string, bool) {
return "hello", true
}
func main() {
if value, ok := Hello(); ok {
fmt.Println(value)
}
value := Hello()
fmt.Println(value)
}
Не компилируется (из-за ошибки multiple-value Hello() in single-value context
)... есть ли способ сделать этот синтаксис для функции Hello()
?