泛型 – 对泛型扩展的快速类型约束

泛型 – 对泛型扩展的快速类型约束,第1张

概述经过一些压力后,我创建了以下通用函数: func removeDupes<T : Hashable > (inout inputCollection : [T] ) -> [T] { var hashMap = [T : Bool]() var output = 0 for thing in inputCollection { if !hashMap[thing] { 经过一些压力后,我创建了以下通用函数:

func removeDupes<T : Hashable > (inout inputCollection : [T] ) -> [T] {  var hashMap = [T : Bool]()  var output = 0  for thing in inputCollection {    if !hashMap[thing] {      hashMap[thing] = true      inputCollection[output++] = thing    }  }  while (inputCollection.count > output) {    inputCollection.removeLast()  }  return inputCollection}

所以当你这样做时:

var names = ["Bob","Carol","Bob","Ted","Alice","Alice"]removeDupes(&names)

名称将包含:[“Bob”,“Carol”,“Ted”,“Alice”]

现在我想在Array上添加“removeDupes”作为扩展方法,我正在用语法进行挣扎,因为我必须将它限制为Hashable项的数组.

我希望我可以这样声明:

extension Array {  func removeDupes< T : Hashable> () -> [T] {    return removeDupes(&self)  }}

但我得到错误:

数组不能转换为’@lvalue inout $T5′

我怀疑答案是“你这个白痴,做这个……”还是“你做不到”

它会是哪个? 总结

以上是内存溢出为你收集整理的泛型 – 对泛型扩展的快速类型约束全部内容,希望文章能够帮你解决泛型 – 对泛型扩展的快速类型约束所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/999733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存