2 pointsby mtlynch2 hours ago1 comment
  • bccdeean hour ago
    A fun quirk about Go that nobody tells you about is that a function with multiple return values can supply multiple arguments. So this:

        func must[T any](t T, err error) T {
            if err != nil {
                panic(err)
            }
            return t
        }
        
        func makeInt(i int) (int, error) {
            if i == 0 {
                return 0, fmt.Errorf("not zero")
            }
            return i, nil
        }
        
        func main() {
            i := must(makeInt(3))
        }
    
    is totally legal & works exactly how you'd expect it to!