Generics Swift 5-泛型-RangeReplacableCollection
为什么这段代码在“RangeReplaceableCollection”上返回一个“Referenceing operator function”+,要求“T”符合“RangeReplaceableCollection”消息?我真的找不到什么地方出错了Generics Swift 5-泛型-RangeReplacableCollection,generics,swift5,Generics,Swift5,为什么这段代码在“RangeReplaceableCollection”上返回一个“Referenceing operator function”+,要求“T”符合“RangeReplaceableCollection”消息?我真的找不到什么地方出错了 func addValues <T>(_ valA: T, _ valB: T) -> T { return(valA + valB) } addValues(1, 2) addValues(1.0, 2.0)
func addValues <T>(_ valA: T, _ valB: T) -> T {
return(valA + valB)
}
addValues(1, 2)
addValues(1.0, 2.0)
func addValues(valA:T,valB:T)->T{
返回(valA+valB)
}
添加值(1,2)
添加值(1.0、2.0)
提前感谢我认为这是由于在主体中使用了
+
运算符。类型为AdditiveArithmetic
的+
运算符要求这两个参数也符合AdditiveArithmetic
的要求。因此,如果您将函数签名更新为以下内容,应该解决问题
func addValues(valA:T,valB:T)->T{
至于为什么它选择提到
RangeReplacableCollection
,这可能只是苹果公司的一个坏警告。为什么你认为任何两个东西都可以加在一起?一个函数即使使用泛型也可以加两个数字似乎是合乎逻辑的。但是valA
和valB
不一定是数字。它们是