Kotlin中,幕后字段是什么东西?又什么作用????

在 官方文档 中看到的幕后字段,大大的问号,也看不懂文档,于是我们要去找例子来理解。

这里的例子来自 stackoverflow

需要先去看看官方文档再来看这下面才比较容易

class Sample {var counter = 0 // the initializer value is written directly to the backing fieldset(value) {if (value >= 0) field = value}
}

上面的这种写法产生疑问,为何不能是下面这种写法替代呢?

class Sample {var counter = 0set(value) {if (value >= 0) counter = value // ERROR StackOverflow: Using actual name 'counter' would make setter recursive}
}

理由已经再注释中给出了,使用Java代码来解释,如下:

class Sample {private int counter = 0;public void setCounter(int value) {if (value >= 0) setCounter(value); // 无限递归}public int getCounter() {return counter;}
}

再结合下面这些博客看看应该可以进一步理解:
理解 Koltin 中的幕后字段和幕后属性
Backing properties in Kotlin

Kotlin back field相关推荐

  1. Kotlin 4. Kotlin 函数注解:Suppress,Volatile, Synchronized, Bindable, RequiresApi,SerializedName

    一起来学Kotlin:概念:4. Kotlin 函数注解:Suppress,Volatile, Synchronized, Bindable, RequiresApi,SerializedName 这 ...

  2. Kotlin面向对象

    面向对象编程通过对事物的抽象,大大的简化了程序的开发难度.我们常用的编程语言:Java.C++.Python都属于面向对象编程.Kotlin与java类似,也是一种面向对象编程语言.本文从面向对象三个 ...

  3. 【Kotlin】属性 与 幕后字段 ( 属性声明 | 属性初始化器 | 属性访问器 | field 属性幕后字段 | lateinit 延迟初始化属性 )

    文章目录 I . 属性 字段 总结 II . 属性声明 III . 属性初始化器 IV . get / set 属性访问器 V . 属性幕后字段 field VI . 变量和常量的区别 VII . 延 ...

  4. kotlin Bean加载失败lateinit property has not been initialized

    Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creat ...

  5. kotlin ++ --_顺便说一句-探索Kotlin代表团

    kotlin ++ -- by Adam Arold 亚当·阿罗德(Adam Arold) 顺便说一句-探索Kotlin代表团 (By the way - exploring delegation i ...

  6. 使用Kotlin打造Android路由框架-KRouter

    KRouter(https://github.com/richardwrq/KRouter)路由框架借助gradle插件.kapt实现了依赖注入.为Android平台页面启动提供路由功能. ####从 ...

  7. 从Java到Kotlin(三)

    本篇文章主要对比Java跟Kotlin中的类和接口的写法. 目录 一.类的声明 二.构造函数 三.函数的参数 四.创建类的实例 五.数据类 六.枚举类 七.属性 八.内部类 九.可见性修饰符 十.继承 ...

  8. 快速书写常见的 Kotlin 代码 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. kotlin的Delegates与lateinit对比

    首先: The two models are similar, and one predates the other. Delegates.notNull() (api reference) is b ...

  10. 一文就懂Kotlin作用域函数以及object关键字

    作用域函数 Kotlin 标准库包含几个函数,它们的唯一目的是在对象的上下文中执行代码块.当对一个对象调用这样的函数并提供一个 lambda 表达式时,它会形成一个临时作用域.在此作用域中,可以访问该 ...

最新文章

  1. Drupal 7.31 SQL注射分析POC
  2. linux centos 网络 时间 日期 同步
  3. mixin network_【译文】Mixin——以最高的安全性满足所有区块链资产的交易需求
  4. layui导航栏页面滚动固定_网站建设页面导航如何降低用户寻找的时间
  5. 【操作系统】笔记6 java基本类型及运算
  6. UML学习(一)类图和对象图
  7. pycharm git OpenSSL SSL_read: Connection was reset, errno 10054
  8. UVa 1513 Movie collection 树状数组
  9. 员工说不用兼容老文件,当主管的就信了?
  10. 千万不要花费时间和金钱学习火山软件开发平台 - 递归软件绝非易语言的延续!
  11. Intel Thunderbolt 3 接口介绍
  12. C语言if的所有用法,关于if的用法
  13. Java 基础接口——fly
  14. 胡子决定编程语言运势[转载]
  15. Iqoo手机删除内置应用
  16. HttpServletResponse response实现文件上传、下载
  17. python用七巧板图片画个图_画一个太大而不能放进一个七巧板的图像
  18. [SQLite 开发] 移除掉一个字串中的字头或字尾空格(TRIM)
  19. 高颜值游戏专属蓝牙耳机推荐,双11认准这五款蓝牙耳机绝不踩雷
  20. 给电脑重装系统的方法与重装过程中问题解决

热门文章

  1. c语言写定时闹钟程序,定时闹钟C语言程序.doc
  2. 怎么取消工作组计算机,windows10系统如何退出workgroup工作组 windows10系统退出workgroup工作组的操作方法...
  3. 大数据培训:hadoop基础教程
  4. 疫情后为提高免疫力和健康对红参需求大幅上升;辉瑞与辉凌就前列腺癌创新药注射用醋酸地加瑞克达成战略合作 | 医药健闻...
  5. lighttpd 使用
  6. HDU -2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(DP,贪心)
  7. python检查验证_Python:在时间、日期之间进行检查。验证日期
  8. P4234 最小差值生成树
  9. 华林SAP论坛(华林自建的SAP论坛)
  10. Docker:镜像加速器