funcprint(args ...interface{}) { for i, arg := range args { if i > 0 {os.Stdout.WriteString(" ")} switch a := arg.(type) { // type switch case Stringer: os.Stdout.WriteString(a.String()) caseint: os.Stdout.WriteString(strconv.Itoa(a)) casestring: os.Stdout.WriteString(a) // more types default: os.Stdout.WriteString("???") } } }
funcmain() { print(Day(1), "was", Celsius(18.36)) // Tuesday was 18.4 °C }