是否仅为 public 属性创建了支持 属性?

Does a backing property created for only public properties?

首先我阅读了link: Backing Fields

我不确定我是否从link中理解了,虽然我看到了一个例子:

Backing Properties

是否会为非 public 属性 创建支持字段?

这与public/private无关。

总是创建支持字段,除非有自定义 getter(和 var 的 setter)并且它(两者都没有)使用 field。支持字段是存储 属性 值的唯一方式,无论它是否为 public。当getter和setter都没有引用field时,才不会生成

在该支持属性示例(在下面复制)中,_table 属性 有一个支持字段,因为它使用默认的 属性 实现。 table 属性 没有支持字段,因为它在 getter.

中没有使用支持字段
private var _table: Map<String, Int>? = null
public val table: Map<String, Int>
    get() {
        if (_table == null) {
            _table = HashMap() // Type parameters are inferred
        }
        return _table ?: throw AssertionError("Set to null by another thread")
    }