Swift中的公共扩展:Float与Float.type
我正在尝试为Swift中的float构建一个扩展,该扩展返回一个枚举大小写。正代表正,。负代表负。我首先构建了一个枚举Swift中的公共扩展:Float与Float.type,swift,swift2,swift-extensions,Swift,Swift2,Swift Extensions,我正在尝试为Swift中的float构建一个扩展,该扩展返回一个枚举大小写。正代表正,。负代表负。我首先构建了一个枚举 public enum Sign { case Positive,Negative } 现在,对于扩展 public extension Float { public static func sign()-> Sign { if self < Float(0) { return Si
public enum Sign
{
case Positive,Negative
}
现在,对于扩展
public extension Float
{
public static func sign()-> Sign
{
if self < Float(0)
{
return Sign.Negative
}
else
{
return Sign.Positive
}
}
}
我要走了
无法将“Float.type”类型的值转换为预期的参数类型
排队
if self < Float(0)
但考虑到Float扩展中的“self”应该保持为Float,这种情况不应该发生。因为您使用的是static:
此函数中的self指的是Float结构的类型,而不是浮点数的实例。移除静电,您就会没事。因为您使用的是静电:
此函数中的self指的是Float结构的类型,而不是浮点数的实例。删除static,您就没事了。首先,您将它与static一起使用,因为@codedifferent已经解释过了,第二,如果已经有一个属性isMinus,那么为什么要使用您自己的逻辑 只需使用此选项即可减少代码行数:
public extension Float {
public func sign()-> Sign {
return self.isSignMinus ? Sign.Negative : Sign.Positive
}
}
首先,您使用它作为@codedifferent的静态属性已经解释过了,第二,如果已经有一个属性isMinus,那么为什么要使用您自己的逻辑呢 只需使用此选项即可减少代码行数:
public extension Float {
public func sign()-> Sign {
return self.isSignMinus ? Sign.Negative : Sign.Positive
}
}
哦上帝我有时是个白痴。我完全错过了。谢谢别担心。每个人都有不值得骄傲的时刻。@RobinThuranMalhotra如果这回答了你的问题,请接受它。上帝我有时是个白痴。我完全错过了。谢谢别担心。每个人都有不值得骄傲的时刻。@RobinThuranMalhotra如果这回答了你的问题,请接受它,也许包括一个为什么使用静态它打破它的描述?很好的答案,我喜欢你指出的。这是一个超级简单的解决方案。谢谢可能包括一个为什么使用静态它打破它的描述?很好的答案,我喜欢你指出的。这是一个超级简单的解决方案。谢谢