在使用多行字符串文字代码的过程中,下面的代码报错:
var description: String {
let friendDescriptions = friends?.map { "\($0.id): \($0.name)" } ?? []
return """
Friendface:
id: \(id)
name: \(name)
age: \(age)
"""
}
报错内容为:
Insufficient indentation of next 11 lines in multi-line string literal
报错的原因为:在 Swift 中,多行字符串文字(multi-line string literals)使用三对双引号 (“””) 来包裹内容。每一行的缩进需要与字符串开始部分的缩进保持一致。如果缩进不一致,编译器会报错,比如 “Insufficient indentation”。
上述代码中,description 属性的多行字符串缩进不正确,主要问题是 “”” 的起始位置和内容行的缩进不一致。
解决方案:
需要保证 “”” 的位置和内容行的缩进一致:
var description: String {
let friendDescriptions = friends?.map { "\($0.id): \($0.name)" } ?? []
return """
Friendface:
id: \(id)
name: \(name)
age: \(age)
"""
}
注意:
1、所有内容行都对齐到了 “”” 的缩进位置。
2、结尾的 “”” 和最后一行内容在同一个缩进层级。