Kotlin中的后备字段backing fieldKotlin中的backing field

Kotlin中的backing field

参考地址stackOverFlow回答地址

什么是Kotlin中的后备字段backing field?这个问题确实困扰了我很久。

而关于backing field对于后备字段的理解,这个回答里面说的特别好。

  1. Kotlin中的属性(properties)和Java中的字段(field)概念上有极大的区别,相对于字段是更高层次的概念。
  2. Kotlin中有两种属性(properties):一种有后备属性(backing field),一种没有。
    • 有后备字段的属性: 将值用字段的形式存储起来。用字段存储在内存中。一个这样的属性的例子就是pair当中的firstsecond。作为pair在内存中的表现,随之改变。
    • 没有后备字段的属性: 不会直接存储,而是通过其他方式来进行存储。它必须通过其他的属性或者对象本身。来计算得到。这样的例子有:list当中的拓展属性indices。它不是后备属性,但是是基于size来计算。所以它不会改变list在in-memory中的表现形式。(这样在java中是做不到的,因为java是基于静态类型的。)

自我总结

总结下来,对其理解就是 具备后备字段的属性。其实就是类中自己的属性。可读可写。 而不具备后备字段的属性,其实是一个代理?可读不可写。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java爬坑系列

【Java入门提高篇】Day1 抽象类

  基础部分内容差不多讲解完了,今天开始进入Java提高篇部分,这部分内容会比之前的内容复杂很多,希望大家做好心理准备,看不懂的部分可以多看两遍,仍不理解的部分...

23260
来自专栏北京马哥教育

最全的常用正则表达式大全

运维行业正在变革,推荐阅读:30万年薪Linux运维工程师成长魔法 很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符...

33360
来自专栏喵了个咪的博客空间

zephir-(6)运算符

#zephir-运算符# ? ##前言## 先在这里感谢各位zephir开源技术提供者 了解的动态变量和静态变量之后我们今天来了解一下在编码工作中至关重要的运算...

37090
来自专栏LinkedBear的个人空间

设计模式笔记(四)——装饰者模式 原

装饰者模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。

9530
来自专栏Kotlin源码阅读

kotlin源码阅读——基础数据类型

基本和所有编程语言一样,基本数据类型有Byte/Short/Int/Long/Float/Double,且和Java一样都是有符号性的。

30630
来自专栏Java与Android技术栈

RxJava 并行操作

上一篇文章RxJava 线程模型分析详细介绍了RxJava的线程模型,被观察者(Observable、Flowable...)发射的数据流可以经历各种线程切换,...

14110
来自专栏Android知识点总结

看得见的数据结构Android版之表的数组实现(数据结构篇)

8710
来自专栏PingCAP的专栏

十分钟成为 Contributor 系列 | 为 TiDB 重构 built-in 函数

为了加速表达式计算速度,最近我们对表达式的计算框架进行了重构,这篇教程为大家分享如何利用新的计算框架为 TiDB 重写或新增 built-in 函数。

17400
来自专栏一个会写诗的程序员的博客

Kotlin 与 Java 对比Kotlin 开发者社区

13620
来自专栏码洞

《快学 Go 语言》第 3 课 —— 分支与循环

上面这个等式每一个初学编程的同学都从老师那里听说过。它并不是什么严格的数据公式,它只是对一般程序的简单认知。数据结构是内存数据关系的静态表示,算法是数据结构从一...

11030

扫码关注云+社区

领取腾讯云代金券