相关疑难解决方法(0)

二进制运算符'+'不能应用于两个'T'操作数

我正在使用Generics添加不同类型,如Int,Double,Float等.我使用下面的代码,但我得到错误"二元运算符'+'不能应用于两个'T'操作数".

func add<T>(num1: T,num2: T) -> T {
    return num1 + num2
}
Run Code Online (Sandbox Code Playgroud)

swift

16
推荐指数
3
解决办法
6729
查看次数

Swift - 是否有一个定义+, - ,*,/函数的标准协议,它被Double,Float,Int等所有"算术"类型采用?

我想写一个泛型函数,它将返回它的两个参数的总和,如下所示:

func add<T: ???>(left: T, right: T) -> T {
    return left+right
}
Run Code Online (Sandbox Code Playgroud)

当然,为了使用+运算符,T类型需要符合定义+运算符的协议.

在其他几家运营商的情况下,有建于协议-例如Equatable==,并Comparable<,>等这些协议是由所有斯威夫特内置的"算术"类型,如双,浮法,Int16的采用等

是否有一个标准协议,定义+,-,*,/运营商,这是由ALL"算术"类型,如双,浮动,中等,UINT,Int16类型等通过?

generics swift swift2

7
推荐指数
1
解决办法
976
查看次数

比较三个值是否相等

有人知道测试三个数字是否相同的快捷方式吗?我知道这有效:

if number1 == number2 && number2 == number3 {

}
Run Code Online (Sandbox Code Playgroud)

但我想要更干净的东西,比如;

if number1 == number2 == number3 {

}
Run Code Online (Sandbox Code Playgroud)

这是非常重要的,因为我正在比较许多不同的价值观.

if-statement compare swift

7
推荐指数
3
解决办法
4621
查看次数

Swift数字泛型?

我有这个功能要从两个数字计算斜边

func hypotenusa<T>(nr1: T, nr2: T) -> T {
    return sqrt( pow(nr1, 2) + pow(nr2, 2) )
}

// v Simpler situation v

func addition<T>(nr1: T, nr2: T) -> T {
    return nr1 + nr2
}
Run Code Online (Sandbox Code Playgroud)

我想使用泛型,所以我不必为此分别使用Int,Float,Double制作3个副本

但这是行不通的,我认为泛型真的很难使用,请帮助我:)

generics ios swift

5
推荐指数
2
解决办法
2036
查看次数

标签 统计

swift ×4

generics ×2

compare ×1

if-statement ×1

ios ×1

swift2 ×1