Hi In the "math/big" package, the Rat, Int, and Float types only have methods that are attached to their pointer types, including the small handful of them that don't modify the type's data, such as String() and Text().
func (x *Rat) String() { ... } Because I'm working with the contents directly instead of the pointers, this means when I print them I don't get the nicely formatted results: fmt.Println(big.NewRat(23, 17)) // 23/17 -- what I want fmt.Println(*big.NewRat(23, 17)) // {{false [23]} {false [17]}} -- what I get In order to get good formats, I've had to attach my own String() methods after naming the types to something else: type BigRat big.Rat func (br BigRat) String() { ... } This means I have to clutter my code with type conversions all over the place, making it look messy. Should the String() method really have been defined in the Go std lib directly on the Int, Rat, and Float types, instead of their pointer types? If not, why not? Maybe I'm misusing those types' intended purpose, although they work OK that way for me in all other respects. If so, will they be changed in the future, or would changing them break existing code out there? Cheers, Gavin Grover -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.