У меня есть следующий простой, свежий проект с одним представлением в 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)
Похожие вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.