在 go 泛型中,通过在函数签名中使用尖括号 <> 来传递类型参数,例如:func myfunc[t any](arg t) {}。调用时,指定具体的类型参数值作为实参,如:myfunc[int](10)。泛型可以使代码更加通用,支持任何类型参数值,如根据类型格式化值的函数 formatvalue[t any](value t),可用于各种类型,如整数、浮点数、字符串等。

如何在 Go 泛型中传递类型参数给函数?
在 Go 1.18 中引入泛型之后,我们可以传递类型参数给函数来实现更通用的代码。
语法
要将类型参数传递给函数,请使用尖括号 <> 指定它们,如下所示:
func MyFunc[T any](arg T) {}在此示例中,T 是一个类型参数,它可以表示任何类型。
实参
这本书给出了一份关于python这门优美语言的精要的参考。作者通过一个完整而清晰的入门指引将你带入python的乐园,随后在语法、类型和对象、运算符与表达式、控制流函数与函数编程、类及面向对象编程、模块和包、输入输出、执行环境等多方面给出了详尽的讲解。如果你想加入 python的世界,David M beazley的这本书可不要错过哦。 (封面是最新英文版的,中文版貌似只译到第二版)
1
在调用带有类型参数的函数时,需要指定具体的类型参数值作为实参,如下所示:
MyFunc[int](10)
在该示例中,int 是传递给 MyFunc 的类型参数值。
实战案例
假设我们有一个根据给定值的类型来格式化它的函数:
func FormatValue(value interface{}) string {
switch v := value.(type) {
case int:
return strconv.FormatInt(int64(v), 10)
case float64:
return strconv.FormatFloat(v, 'f', -1, 64)
case string:
return v
default:
return "Unknown value"
}
}使用泛型,我们可以重写此函数以支持任何类型:
func FormatValue[T any](value T) string {
return strconv.Format(value)
}现在,我们可以使用任何类型参数值来调用 FormatValue,如下所示:
fmt.Println(FormatValue[int](10)) // "10"
fmt.Println(FormatValue[float64](3.14)) // "3.14"
fmt.Println(FormatValue[string]("Hello, world!")) // "Hello, world!"以上就是如何在 Go 泛型中传递类型参数给函数?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号