Не работает синтаксический анализ строки

У меня есть следующий простой, свежий проект с одним представлением в Xcode 10 с Swift 4.2

Я ввел опечатку в строке интерполяции первой строки, но компилятор не жалуется, и код выполняется.

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let number: Int = 50
        var string = "\(number.numberString, withValue: false) lbs"
        print(string)
        string = "\(number.numberString(withValue: false)) lbs"
        print(string)
    }
}
extension Int {
    func numberString(withValue value: Bool) -> String {
        if value == true {
            return "value"
        } else {
            return String(self)
        }
    }
}

распечатка:

((Function), withValue: false) lbs
50 lbs

Он принимает первый параметр как "(Функция)" и сообщает об остальном тексте в круглых скобках как о части текста, но редактор не показывает его как текст. Что-то я не понимаю в синтаксисе интерполяции строк? или это проблема / ошибка?

Спасибо

1 ответ

Решение

Он отображает именно то, что вы запрашиваете. Вы оцениваете:

(number.numberString, withValue: false)

Это кортеж с немаркированным значением функции и помеченным логическим значением. Описание этого кортежа будет следующим:

((Function), withValue: false)

Другие вопросы по тегам