Swift: What does this error: 'private(set)' modifier cannot be applied to read-only properties mean?

Swift: What does this error: 'private(set)' modifier cannot be applied to read-only properties mean?

如果我们可以创建只读的计算 属性 我有点困惑 Somethig like:

extension ToMyClass {
    private(set) var isEmpty: Bool {
        return head == nil
    }
} 

尝试创建时出现以下错误:

 error: 'private(set)' modifier cannot be applied to read-only properties

您正在尝试为计算 属性 设置修饰符,它始终是只读的

以下代码摘自:The Swift Programming Language (Swift 4)

struct TrackedString {
    private(set) var numberOfEdits = 0
    var value: String = "" {
        didSet {
            numberOfEdits += 1
        }
    }
}

应该是存储的属性

我遇到了同样的错误,但原因完全不同。我的代码是这样的:

protocol Foo {
    var bar: String { get }
}
class Baz: Foo {
    private (set) let bar: String // Error
    
    init(bar: String) {
        self.bar = bar
    }
}

我只需要更改:

private (set) let bar: String

至:

private (set) var bar: String

let 使属性不可变,这导致了问题。