generics - 如何在 V 中编写通用示例函数?
问题描述
我想sample
在 V 中为数组实现一个通用函数。灵感来自base::sample()
于 R。
replace
没有 R 函数的and选项并且仅限于整数数组的非常基本的原型prob
可能如下所示:
pub fn sample_int(arr[] int, size int) []int {
mut res := [0].repeat(size)
for i := 0; i < size; i++ {
res[i] = arr[rand.next(arr.len)]
}
return res
}
目前是否有可能使此函数通用以适用于各种数组?我将如何实现这一点?
V 文档中有一个关于泛型的部分,但我无法用这个示例代码弄清楚。我还在 V 存储库中搜索了示例,但我只找到了应该在未来实现泛型的 ToDo 注释。
解决方案
随着 V 的进展,这些文档已经过时了。这是如何在 V 中将泛型与您的函数一起使用的代码。也加入不和谐服务器进行讨论和更多的谈话。
pub fn sample_int<T>(arr[] T, size int) []T {
mut res := [arr[1]].repeat(size)
for i := 0; i < size; i++ {
res[i] = arr[rand.next(arr.len)]
}
return res
}
推荐阅读
- css - PostCSS 乱序编译 SASS 媒体查询?
- asp.net - ASP.Net Core 3.1 - 使用视图模型上传文件总是为 NULL
- java - Appium 滚动动作发生两次
- php - 在 Ubuntu 16.04 服务器上安装特定的 PHP 版本
- qliksense - 我们可以通过 Rest API 从 Qlik sense 中提取数据吗?
- go - 如何检查一行或字符串是否包含作为 Golang 中的模板化变量?
- shell - 如何对具有日期和时间的时间戳的文件进行排序
- python - 如何自定义页面类型模型的 IndexView - Wagtail Admin 中的列表视图
- python-3.x - 如何在 Python 中检查来自文件的用户输入?
- go - 成功连接 webscoket 后如何向特定 URI 发送消息?