【发布时间】:2016-03-31 16:09:55
【问题描述】:
Swift Playground 有这个功能:
func repeatItem<Item>(item: Item, numberOfTimes: Int) -> [Item] {
var result = [Item]()
for _ in 0..<numberOfTimes {
result.append(item)
}
return result
}
let strArray: [String] = repeatItem("knock", numberOfTimes:4) //!!!!
为什么函数调用中有numberOfTimes:,为什么删除它会给我“缺少参数标签”的错误?更令人困惑的是,为什么在“敲门”中添加参数标签会给我“无关参数标签”?
编辑:
此外,这段代码在调用中没有参数标签:
func anyCommonElements <T: SequenceType, U: SequenceType where T.Generator.Element: Equatable, T.Generator.Element == U.Generator.Element> (lhs: T, _ rhs: U) -> Bool {
for lhsItem in lhs {
for rhsItem in rhs {
if lhsItem == rhsItem {
return true
}
}
}
return false
}
anyCommonElements([1, 2, 3], [3])
【问题讨论】:
标签: swift generics parameter-passing