Kotlin back field
在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相关推荐
- Kotlin 4. Kotlin 函数注解:Suppress,Volatile, Synchronized, Bindable, RequiresApi,SerializedName
一起来学Kotlin:概念:4. Kotlin 函数注解:Suppress,Volatile, Synchronized, Bindable, RequiresApi,SerializedName 这 ...
- Kotlin面向对象
面向对象编程通过对事物的抽象,大大的简化了程序的开发难度.我们常用的编程语言:Java.C++.Python都属于面向对象编程.Kotlin与java类似,也是一种面向对象编程语言.本文从面向对象三个 ...
- 【Kotlin】属性 与 幕后字段 ( 属性声明 | 属性初始化器 | 属性访问器 | field 属性幕后字段 | lateinit 延迟初始化属性 )
文章目录 I . 属性 字段 总结 II . 属性声明 III . 属性初始化器 IV . get / set 属性访问器 V . 属性幕后字段 field VI . 变量和常量的区别 VII . 延 ...
- kotlin Bean加载失败lateinit property has not been initialized
Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creat ...
- kotlin ++ --_顺便说一句-探索Kotlin代表团
kotlin ++ -- by Adam Arold 亚当·阿罗德(Adam Arold) 顺便说一句-探索Kotlin代表团 (By the way - exploring delegation i ...
- 使用Kotlin打造Android路由框架-KRouter
KRouter(https://github.com/richardwrq/KRouter)路由框架借助gradle插件.kapt实现了依赖注入.为Android平台页面启动提供路由功能. ####从 ...
- 从Java到Kotlin(三)
本篇文章主要对比Java跟Kotlin中的类和接口的写法. 目录 一.类的声明 二.构造函数 三.函数的参数 四.创建类的实例 五.数据类 六.枚举类 七.属性 八.内部类 九.可见性修饰符 十.继承 ...
- 快速书写常见的 Kotlin 代码 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- kotlin的Delegates与lateinit对比
首先: The two models are similar, and one predates the other. Delegates.notNull() (api reference) is b ...
- 一文就懂Kotlin作用域函数以及object关键字
作用域函数 Kotlin 标准库包含几个函数,它们的唯一目的是在对象的上下文中执行代码块.当对一个对象调用这样的函数并提供一个 lambda 表达式时,它会形成一个临时作用域.在此作用域中,可以访问该 ...
最新文章
- Drupal 7.31 SQL注射分析POC
- linux centos 网络 时间 日期 同步
- mixin network_【译文】Mixin——以最高的安全性满足所有区块链资产的交易需求
- layui导航栏页面滚动固定_网站建设页面导航如何降低用户寻找的时间
- 【操作系统】笔记6 java基本类型及运算
- UML学习(一)类图和对象图
- pycharm git OpenSSL SSL_read: Connection was reset, errno 10054
- UVa 1513 Movie collection 树状数组
- 员工说不用兼容老文件,当主管的就信了?
- 千万不要花费时间和金钱学习火山软件开发平台 - 递归软件绝非易语言的延续!
- Intel Thunderbolt 3 接口介绍
- C语言if的所有用法,关于if的用法
- Java 基础接口——fly
- 胡子决定编程语言运势[转载]
- Iqoo手机删除内置应用
- HttpServletResponse response实现文件上传、下载
- python用七巧板图片画个图_画一个太大而不能放进一个七巧板的图像
- [SQLite 开发] 移除掉一个字串中的字头或字尾空格(TRIM)
- 高颜值游戏专属蓝牙耳机推荐,双11认准这五款蓝牙耳机绝不踩雷
- 给电脑重装系统的方法与重装过程中问题解决
热门文章
- c语言写定时闹钟程序,定时闹钟C语言程序.doc
- 怎么取消工作组计算机,windows10系统如何退出workgroup工作组 windows10系统退出workgroup工作组的操作方法...
- 大数据培训:hadoop基础教程
- 疫情后为提高免疫力和健康对红参需求大幅上升;辉瑞与辉凌就前列腺癌创新药注射用醋酸地加瑞克达成战略合作 | 医药健闻...
- lighttpd 使用
- HDU -2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(DP,贪心)
- python检查验证_Python:在时间、日期之间进行检查。验证日期
- P4234 最小差值生成树
- 华林SAP论坛(华林自建的SAP论坛)
- Docker:镜像加速器