字符串插值解析无法正常工作
String interpolation parsing not working properly
我在 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
它是以第一个参数为“(Function)”,并将括号内的其余文本作为文本的一部分报告,但编辑器不会将其显示为文本。
字符串插值语法中有什么我不明白的地方吗?或者这是编译器 issue/bug?
谢谢
它显示的正是您所要求的。您正在评估:
(number.numberString, withValue: false)
这是一个具有未标记函数值和标记布尔值的元组。该元组的描述为:
((Function), withValue: false)
我在 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
它是以第一个参数为“(Function)”,并将括号内的其余文本作为文本的一部分报告,但编辑器不会将其显示为文本。 字符串插值语法中有什么我不明白的地方吗?或者这是编译器 issue/bug?
谢谢
它显示的正是您所要求的。您正在评估:
(number.numberString, withValue: false)
这是一个具有未标记函数值和标记布尔值的元组。该元组的描述为:
((Function), withValue: false)