sách gpt4 ăn đã đi

android - Kotlin:const val 与 val

In lại Tác giả: IT Lão Cao 更新时间:2023-10-28 13:28:05 46 4
mua khóa gpt4 giày nike

我理解在 Kotlin 中 const val 用于声明常量,而 giá trị 用于只读属性。但是,我想知道在以下情况下,哪个更适合使用。

假设我有一个 fragment 需要一个用于 saveInstanceStaterestoreInstanceState 的 key 。我想知道以下 2 个选项中哪一个更好:

选项 1:

class MyFragment {
private val MY_KEY = "my_key"
...
}

选项 2:

private const val MY_KEY = "my_key" // declared in the same file.

class MyFragment {
...
}

我更喜欢#option 2,因为它清楚地表明 MY_KEY 是一个常量,并且值是在编译时确定的。但是,由于它是在顶层声明的,因此需要在编译的 java 代码中创建一个类,即 MyFragmentKt(假设文件名为 MyFragment.kt)。在#option 1 中,不会生成额外的类,虽然 MY_KEY 的值将在运行时分配而不是常量,但在这种特定情况下它的使用方式没有区别。

因此,虽然我个人更喜欢#option 2,但我的分析让我认为#option 1 即使不是更好,也不会更糟。我只是想知道其他开发人员如何看待这一点,以及#option 2 是否还有其他我没有想到的好处。谢谢。

câu trả lời hay nhất

每次编写(非内联)lambda 表达式时,您就创建了另一个类。与此相比,创建一个单独的类来保存顶级声明似乎微不足道。

此外,如果您在顶层拥有的只是一个常量声明,它将被内联到每个使用站点(按规范),因此拥有的类本身将变得未被引用,因此可以通过 ProGuard 的最小化来定位。它很可能不会出现在您的正式版 APK 中。

关于android - Kotlin:const val 与 val,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48661282/

46 4 0
Cựu chiến binh CNTT
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress