Страницы

Поиск по вопросам

четверг, 11 июля 2019 г.

is not identical to 'int'

Добрый день! Разбираюсь в Swift, по официальной книге Apple. В главе про функции наткнулся на пример, который не работает:
func alignRight(var string: String, count: Int, pad: Character) -> String { let amountToPad = count - count(string) if amountToPad < 1 { return string } let padString = String(pad) for _ in 1...amountToPad { string = padString + string } return string } let originalString = "hello" let paddedString = alignRight(originalString, 10, "-")
Если вставить этот код в playground выдает ошибку:
Что делать?


Ответ

Ошибка исчезает при такой записи:
let amountToPad = count - Swift.count(string)
(из комментария pavelip) Так же помогает переименовать переменную count во что-то другое, например, _count:
func alignRight(var string: String, _сount: Int, pad: Character) -> String { let amountToPad = _сount - count(string)
Очевидно, это происходило из-за конфликта названия переменной с названием функции.

Комментариев нет:

Отправить комментарий