我对Int
类型的扩展名不适用于原始的负值。我可以解决它,但失败似乎是一个类型推断问题。为什么这不按预期工作?
我第一次在应用程序开发环境中遇到过这种情况,但我在Playground上重新创建了一个简单的形式。我使用的是最新版本的Xcode;版本6.2(6C107a)。
答案 0 :(得分:1)
这是因为-
被解释为应用于整数2
的减号运算符,而不是-2
数字文字的一部分。
要证明这一点,试试这个:
-(1.foo())
生成相同的错误
找不到会员'foo'
该消息可能具有误导性,因为错误是关于尝试将减号运算符应用于foo
方法的返回值。
我不知道这是否是故意行为,但它是如何运作的:)
答案 1 :(得分:0)
这可能是一个编译器错误(如果你愿意,可以报告雷达)。使用括号:
println((-2).foo())