0

我了解无法按照此处所述将支持字段“添加”为扩展名。现在我在 jetpack 数据存储的文档中找到了这段代码,并不太明白发生了什么。在我看来,settingsDataStore 是 Context 的扩展字段,但这不应该是可能的......:

val Context.settingsDataStore: DataStore<Settings> by dataStore(
   fileName = "settings.pb",
   serializer = SettingsSerializer)

稍后这个“settingsDataStore”可以这样访问:

val exampleCounterFlow: Flow<Int> = context.settingsDataStore.data
  .map { settings ->
    // The exampleCounter property is generated from the proto schema.
    settings.exampleCounter
  }

有人可以向我解释这里发生了什么吗?这是如何运作的?“dataStore()”是否以某种方式隐含地提供了 getter 和 setter?但实际的“settingsDataStore”到底在哪里?它不能真正引用上下文中的字段......?

4

0 回答 0