Here is my program.
package main
import (
"errors"
"fmt"
)
func main() {
a := -1
err := assertPositive(a)
fmt.Printf("error: %s; int: %d
", err, a)
fmt.Printf("error: %v; int: %d
", err, a)
}
func assertPositive(a int) error {
if a <= 0 {
return errors.New("Assertion failure")
}
return nil
}
Here is the output.
error: Assertion failure; int: -1
error: Assertion failure; int: -1
In this program, it makes no difference whether I use %s
or %v
to print
the error
object.
I have two questions.
- Is there any scenario while printing errors where it would make a
difference for
%s
and%v
? - What is the correct format specifier to use in this case?