Generics Swift 5-泛型-RangeReplacableCollection

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)

为什么这段代码在“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(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
不一定是数字。它们是T,可以是任何东西。这回答了你的问题吗?好的。谢谢。我现在明白了。法国致以最良好的问候。