Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在swift中扩展Set数据类型_Ios_Swift_Set - Fatal编程技术网

Ios 在swift中扩展Set数据类型

Ios 在swift中扩展Set数据类型,ios,swift,set,Ios,Swift,Set,我是个敏捷的新手。我在集合数据结构中为我的代码创建了一个新方法。仅当值不等于特定数字时,此方法才会插入到集合中 extension Set { mutating func addExcludingCurrent(value: Int, currIndex: Int) { if value == currIndex { return } else { self.insert(value) // Error

我是个敏捷的新手。我在集合数据结构中为我的代码创建了一个新方法。仅当值不等于特定数字时,此方法才会插入到集合中

extension Set {
    mutating func addExcludingCurrent(value: Int, currIndex: Int) {
        if value == currIndex {
            return
        } else {
            self.insert(value) // Error
        }
    }
}

无法使用类型为“(Int)”的参数列表调用“insert”
。我该如何解决它。或者有没有更好的方法来完成这项任务

A
Set
是一个
struct
,其
AssociatedType
定义为
元素。因此,您可以通过插入元素而不是整数来扩展它:

extension Set {
  mutating func addExcludingCurrent(value: Element, currIndex: Element) {
    if value == currIndex {
      return
    } else {
      self.insert(value)
    }
  }
}

var a = Set<Int>();
a.insert(3)
a.addExcludingCurrent(5,currIndex: 5)
扩展集{
mutating func addexcluding current(值:元素,电流索引:元素){
如果值==当前索引{
返回
}否则{
self.insert(值)
}
}
}
var a=Set();
a、 插入(3)
a、 加法器排除电流(5,电流指数:5)

A
集合
是一个
结构
,其
关联类型
定义为
元素
。因此,您可以通过插入元素而不是整数来扩展它:

extension Set {
  mutating func addExcludingCurrent(value: Element, currIndex: Element) {
    if value == currIndex {
      return
    } else {
      self.insert(value)
    }
  }
}

var a = Set<Int>();
a.insert(3)
a.addExcludingCurrent(5,currIndex: 5)
扩展集{
mutating func addexcluding current(值:元素,电流索引:元素){
如果值==当前索引{
返回
}否则{
self.insert(值)
}
}
}
var a=Set();
a、 插入(3)
a、 加法器排除电流(5,电流指数:5)
试试这个:

extension Set {
    mutating func addExcludingCurrent(value: Element, currIndex: SetIndex<Element>) {
        if value == currIndex {
            return
        } else {
            self.insert(value) // No more mistakes
        }
    }
}
所以您可以这样编写扩展:

extension Set {
    mutating func addExcludingCurrent(value: Element, currIndex: Index) {
        if value == currIndex {
            return
        } else {
            self.insert(value) // No more mistakes
        }
    }
}
试试这个:

extension Set {
    mutating func addExcludingCurrent(value: Element, currIndex: SetIndex<Element>) {
        if value == currIndex {
            return
        } else {
            self.insert(value) // No more mistakes
        }
    }
}
所以您可以这样编写扩展:

extension Set {
    mutating func addExcludingCurrent(value: Element, currIndex: Index) {
        if value == currIndex {
            return
        } else {
            self.insert(value) // No more mistakes
        }
    }
}

不要使用扩展,这不是需要添加到
集中的常见功能。只需使用一个方法。不要使用扩展,这不是需要添加到
集合中的常见功能。只要使用一种方法。