// writeString writes s to w.// If w has a WriteString method, it is invoked instead of w.Write.funcwriteString(wio.Writer,sstring)(nint,errerror){typestringWriterinterface{WriteString(string)(nint,errerror)}ifsw,ok:=w.(stringWriter);ok{returnsw.WriteString(s)// avoid a copy}returnw.Write([]byte(s))// allocate temporary copy}funcwriteHeader(wio.Writer,contentTypestring)error{if_,err:=writeString(w,"Content-Type: ");err!=nil{returnerr}if_,err:=writeString(w,contentType);err!=nil{returnerr}// ...}
package fmt
func formatOneValue(x interface{}) string {
if err, ok := x.(error); ok {
return err.Error()
}
if str, ok := x.(Stringer); ok {
return str.String()
}
// ...all other types...
}