Go では、関数の型変換には型変換と関数アダプターの 2 つの方法があります。型変換のパフォーマンスは 400 ナノ秒で向上しますが、関数アダプターのパフォーマンスは 600 ナノ秒で低下します。
関数型変換とは、ある関数型を別の関数型に変換することを指します。 Go では、関数の型変換に 型変換
または func アダプター
を使用できます。
package main import "fmt" func main() { // 定义一个返回字符串的函数 getString := func() string { return "Hello, World!" } // 将 getString 转换为返回 int 的函数 getInt := func() int { return len(getString()) } fmt.Println(getInt()) // 输出 13 }
package main import "fmt" type StringToInt func() int func getStringToIntAdapter(getString func() string) StringToInt { return func() int { return len(getString()) } } func main() { getString := func() string { return "Hello, World!" } getInt := getStringToIntAdapter(getString) fmt.Println(getInt()) // 输出 13 }
以下は 2 つの方法のパフォーマンスの比較です。
時間 (ナノ秒) | |
---|---|
Funcアダプタ | |
filter など) を適用できます。異なる種類のデータ。例:
// 将字符串列表转换为整数列表 func mapToInts(strs []string) []int { return map(func(s string) int { return len(s) }, strs) }
関数型変換により、高階関数をあらゆる種類のデータに柔軟に適用でき、コードの再利用性が向上します。
以上がgolang関数の型変換の性能比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。