【发布时间】:2019-05-15 09:43:32
【问题描述】:
我正在阅读 Swift 4 for Beginners。我正在制作素数检查器,并希望使用squareRoot() 函数在除法之前获取平方根以检查素数。
这是我的代码:
func isPrime(_ number: Int) -> Bool {
switch number {
case _ where number < 1 :
return false
case 1:
return true
default:
break
}
let test = number.squareRoot()
for i in 2..<number {
if isDivisable(number, by: i) {
return false
}
}
return true
}
let test = number.squareRoot() 行会产生编译错误
“Int”类型的值没有成员“squareRoot”
但是如果我将上面的行替换为:
test = 100.squareRoot()
那么就没有编译器错误了。 number 和 100 的两个值都是 Int 类型。那么编译器不喜欢我在参数squareRoot 上使用number 的原因是什么
希望这是有道理的
干杯
【问题讨论】: