メソッド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
タイプではないため、に渡すことはできません。そのため、次のfmt.Stringer
ように記述する必要があります。
parts := []fmt.Stringer{myint(1), myint(5), myint(6)}
しかしparts
、値がintでなければならない別の操作が必要な場合はどうなりますか?myint
のスライスをその時のスライスにキャストする必要がありStringer
ますか?