Почему я могу изменить константу let с параметром inout при использовании try?
Это не удастся скомпилировать с ошибкой:
Неизменное значение self.constantValue не должно передаваться
class Test {
let constantValue: String = ""
init() {
Test.makeABC(&constantValue)
}
static func makeABC(_ string: inout String) {
string = "ABC"
}
}
Однако это скомпилирует и фактически изменит константу let.
class Test {
let constantValue: String = ""
init() {
try? Test.makeABC(&constantValue)
}
static func makeABC(_ string: inout String) throws {
string = "ABC"
}
}
Кто-нибудь знает, почему это работает, и если это предполагаемое поведение?
Я подал ошибку https://bugs.swift.org/browse/SR-8368