No.
For obvious reasons this is called the comma ok idiom (not a function overload ):
result, status := <-ch1
1- Try this for Channels:
package main
import (
"fmt"
)
func main() {
ch1 := make(chan string, 1)
ch1 <- `Hi`
result, status := <-ch1
fmt.Println(result, status) // Hi true
ch1 <- `Hi`
close(ch1)
result, status = <-ch1
fmt.Println(result, status) // Hi true
result, status = <-ch1
fmt.Println(result, status) // false
}
output:
Hi true
Hi true
false
2- Try this for Maps:
package main
import (
"fmt"
)
func main() {
m := map[string]int{"One": 1, "Two": 2}
result, status := m["One"]
fmt.Println(result, status) // 1 true
result, status = m["Two"]
fmt.Println(result, status) // 2 true
result, status = m["Zero"]
fmt.Println(result, status) // 0 false
}
output:
1 true
2 true
0 false
3- Try this for interface
conversions and type assertions:
package main
import (
"fmt"
)
func main() {
var s interface{} = `One`
result, status := s.(string)
fmt.Println(result, status) // One true
i, status := s.(int)
fmt.Println(i, status) // 0 false
}
output:
One true
0 false