我想编写一个Join带有String()方法的任意对象的函数:
package main
import (
"fmt"
"strings"
)
type myint int
func (i myint) String() string {
return fmt.Sprintf("%d", i)
}
func main() {
parts := []myint{myint(1), myint(5), myint(6)}
fmt.Println(Join(parts, ", "))
}
func Join(parts []fmt.Stringer, sep string) string {
stringParts := make([]string, len(parts))
for i, part := range(parts) {
stringParts [i] = part.String()
}
return strings.Join(stringParts , sep)
}
http://play.golang.org/p/EhkbyibzHw
[]myint无法传递给Join,因为它不是type fmt.Stringer,所以我必须写:
parts := []fmt.Stringer{myint(1), myint(5), myint(6)}
但是,如果我需要parts另一个必须将值设置为int的操作怎么办?我应该将其中的一部分切成myint薄片Stringer吗?
慕田峪4524236
相关分类