Я читаю Swift 4 для начинающих.Я делаю проверку простых чисел и хочу использовать функцию 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
Надеюсь, это имеет смысл
Cheers