所谓可观察属性就是当属性变化时可以拦截其变化,实现观察属性值变化的委托函数是Delegates.observable.该函数接受二个参数,第一个是初始化值,第2个属性值变化事件的响应器.每次我们向属性赋值时,响应器都会被调用,响应器函数的三个函数,被赋值的属性,赋值前旧属性值,以及赋值后的新属性值

import kotlin.properties.Delegates

fun main(arg: Array<String>) {
val user = user()
user.name="two"
user.name="new"
} class user{
var name:String by Delegates.observable("one"){
property, oldValue, newValue ->
println("旧值 $oldValue 新值 $newValue")
}
}

输出:

旧值 one 新值 two
旧值 two 新值 new

最新文章

  1. PHP数组详解
  2. Opencv 完美配置攻略(Win8.1 + Opencv 2.4.8 + VS 2013)
  3. java 导出Excel 大数据量,自己经验总结!
  4. golang rbac框架
  5. 三类,23种设计模式,速记理解法!PHP
  6. NodeJS包管理工具——npm入门
  7. SVM(支持向量机)算法
  8. AsyncTask加载图片
  9. C# DataTable转实体通用方法
  10. Apache Storm 1.1.0 发布概览
  11. Easy UI下拉列表默认选中(多行)与为文本框赋值
  12. Javascript的console[&#39;&#39;]几种常用输入方法
  13. let,const,var
  14. (办公)rom包
  15. 微信小程序上传与下载文件
  16. win10下通过Anaconda安装TensorFlow-GPU1.3版本,并配置pycharm运行Mnist手写识别程序
  17. tcp_nopush高性能
  18. 配置JAVA 环境变量
  19. remmina从linux远程桌面连接windows失败解决方法
  20. Mac 安装 Ruby, Rails 运行环境

热门文章

  1. nmap中文帮助文档
  2. runtime环境下的jade
  3. mongodb索引 过期索引
  4. Paper Reading:Mask RCNN
  5. gitlab-ce白名单设置杜绝并发数过大引起的封ip故障
  6. vue3.0+typeScript项目
  7. post和get的在测试眼里的区别大概就是post比get安全吧……
  8. mysql数据库高并发处理
  9. 部署logstash节点
  10. 前端知识体系:JavaScript基础-作用域和闭包-词法作用域和动态作用域