func ReadFile(path string) (string, error) {
b, err := ioutil.ReadFile(path)
s := string(b[:])
return s, err
}
How this function would be written regarding to drafts?. I am really confused. func ReadFile(path string) (string, error) {
b, err := ioutil.ReadFile(path)
s := string(b[:])
return s, err
}
How this function would be written regarding to drafts?. I am really confused.> A check returns from the enclosing function by returning the result of invoking the handler chain with the error value.
> A return statement in a handler causes the enclosing function to return immediately with the given return values. A return without values is only allowed if the enclosing function has no results or uses named results. In the latter case, the function returns with the current values of those results.
> A handler chain function takes an argument of type error and has the same result signature as the function for which it is defined.
> If the enclosing function has result parameters, it is a compile-time error if the handler chain for any check is not guaranteed to execute a return statement.
So any handler defined in ReadFile would be required to return (string, error) or not include a return at all (such that other handlers got their chance to interact with the error).
func ReadFile(path string) (string, error) {
b := check ioutil.ReadFile(path)
return string(b), nil
}The default handler will populate the last element of the return list with the error, and return.
The other elements get zeroes, if not named, or they are unchanged from how they have already been set, if named.