【问题标题】:How to write a generic sample function in V?如何在 V 中编写通用示例函数?
【发布时间】:2020-01-19 16:01:29
【问题描述】:

我想为 V 中的数组实现一个通用的 sample 函数。灵感来自 R 中的 base::sample()

没有 R 函数的 replaceprob 选项且仅限于整数数组的非常基本的原型可能如下所示:

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 documentation 中有一个关于泛型的部分,但我无法通过这个示例代码弄清楚。我还在 V repo 中搜索了示例,但我只找到了应该在未来实现泛型的 ToDo cmets。

【问题讨论】:

    标签: generics polymorphism vlang


    【解决方案1】:

    随着 V 的进步,文档已经过时了。这是如何在 V 中将泛型与您的函数一起使用的代码。还可以加入 discord 服务器进行讨论和更多讨论。

    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
    
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-19
      • 1970-01-01
      • 2020-05-16
      • 2020-12-31
      • 2010-09-12
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多