【问题标题】:Is there a better way to define const in Kotlin?有没有更好的方法在 Kotlin 中定义 const ?
【发布时间】:2018-10-06 20:44:01
【问题描述】:

我需要在我的APP中定义一些常量,代码A在字符串资源文件中定义这个常量,

代码B将此const定义为kt文件中的top val,我可以像const.SavedJsonName一样访问它

代码A使用资源有点不方便,代码B是不是好办法?

或者你有更好的方法吗?

代码 A

<string name="SavedJsonName">mySavedJsonC</string>

代码 B

// const.kt

val SavedJsonName="mySavedJsonC"

【问题讨论】:

标签: android kotlin


【解决方案1】:

考虑到功能,第一种方法在 Android 上显然更好,因为它支持 i18n(多语言),而第二种方法更有效。

我的意见是,如果是自然语言字符串(如 UI 上显示的文本),请将其放入 string.xml。如果不是(例如某些数据库表的 ID),请将它们放入 kt 文件中,例如 const.kt

顺便说一句,您最好使用const val SAVED_JSON_NAME = "mySafedJsonC"(这使它成为编译时常量,使编译器能够进行常量折叠)而不是您提供的代码。

【讨论】:

  • 谢谢! “mySavedJsonC”是一个常量,我不会用不同的语言翻译它。
  • 请考虑接受我的回答或告诉我我的回答中缺少哪些信息...
【解决方案2】:

如果只想声明一些字符常量,可以使用第一种方式,也可以使用第二种方式。

如果你使用 Code A,实际上你可以使用一些 utils 方法来访问这些常量

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多