kotlin学习记录(代码片段)

abin-c abin-c     2022-12-19     553

关键词:

关于kotlin中的委托:

1.属性委托

  我们知道kotlin为我们提供了几种标准的委托,如下所示

  延迟属性(lazy properties): 其值只在?次访问时计算;
  可观察属性(observable properties): 监听器会收到有关此属性变更的通知;
  把多个属性储存在?个映射(map)中,?不是每个存在单独的字段中。

  kotlin中的委托属性

class Example 
      var p: String by Delegate()

  语法是: val/var <属性名>: <类型> by <表达式>。在 by 后?的表达式是该 委托, 因为属性对应的 get()(和 set() )会被委托给它的
getValue() 和 setValue() ?法。 属性的委托不必实现任何的接?,但是需要提供?个 getValue() 函数(和 setValue() ?对于 var 属
性)。 例如:

class Delegate 
operator fun getValue(thisRef: Any?, property: KProperty<*>): String 
return "$thisRef, thank you for delegating ‘$property.name‘ to me!"

operator fun setValue(thisRef: Any?, property: KProperty<*>, value: String) 
println("$value has been assigned to ‘$property.name‘ in $thisRef.")

 





kotlin基础学习(代码片段)

...就对这本书进行了学习。在这本书中,由于谷歌大力推广kotlin语言,将其作为android开发的首推语言,本书也遵循了谷歌的推广,因此我就跟着书本学习了基本的Kotlin语法,当作记录笔记了。变量和函数变量在Koltin中的变量定义... 查看详情

kotlin挂起函数基础(代码片段)

...c;比普通的函数多了suspend关键字。通过suspend关键字,Kotlin编译器就会特殊对待这个函数,将其转换成一个带有Callback的函数,这里的Callback就是Continuation接口。    例         CPS转换:susp 查看详情

kotlin学习(代码片段)

 集合:  Kotlin可以使用Java声明集合的方法,也有自己的声明方式。//Java方式vala=ArrayList<Int>()//Kotlin方式valb=arrayListOf<Int>()  顶层函数和属性:  Kotlin中没有static修饰符。  为了消除静态工具类,Kotlin可... 查看详情

kotlin语法学习(代码片段)

文章目录Kotlin语法学习(二)面向对象编程类和对象继承和构造函数接口访问修饰符数据类和单例Kotlin语法学习(二)面向对象编程类和对象创建一个Person类openclassPerson/***姓名*/varname=""/***年龄*/varage=0/***人的吃饭方法*/fune... 查看详情

kotlin学习之旅解决错误:kotlin.notimplementederror:anoperationisnotimplemented:notyetimplemented(代码片段(代码片段)

一、错误描述今天实现android.hardware.SensorEventListener接口的时候,然后运行程序报错:2021-12-2109:46:49.25616655-16655/com.oyp. 查看详情

kotlin学习笔记-----接口(代码片段)

面向对象-----接口Kotlin中的接口和Java中的接口一样,都是使用interface关键字修饰interfaceAnimalfuneat()?classCat:Animaloverridefuneat()println("猫吃鱼")?classDog:Animaloverridefuneat()println("狗吃肉")  查看详情

kotlindsl学习(代码片段)

之前在《EffectiveKotlin》一书中,有一条专门讲解DSL的:考虑为复杂的对象创建定义DSL,让我对DSL有了一定的了解。为了能够更熟悉掌握Kotlin上的DSL,用这篇Blog来学习记录下。文章目录1.概述1.1DSL是什么1.2Kotlin自定... 查看详情

kotlin语法学习(代码片段)

Kotlin语法学习(一)变量和函数变量在Kotlin中定义变量的方式和java有很大的区别,在java中有很多的基本类型和一些引用类型,但是在Kotlin中定义一个变量只允许在变量前面声明两个关键字:val和varval(value的简写)用来声明一个不可变的... 查看详情

kotlin学习(10)反射(代码片段)

...属性和方法的方式,而不需要事先确定这些属性是什么。Kotlin反射API:KClass、KCallable、KFunction、KProppertyKClass  对应Java中的java.lang.class//Kotlin获取一个类valmyClass:KClass<Person>=Person::class//Java获取一个类Cl 查看详情

kotlin基础学习(代码片段)

学!原文:https://blog.csdn.net/CrazyApes/article/details/122091459文章目录Kotlin线上编写变量lateinit延迟初始化空安全比较==,===,equalsfor循环when[Dataclasses](https://kotlinlang.o 查看详情

kotlin1.5新特性记录(代码片段)

所有内容均来源于官网,会过滤掉非Kotlin/JVM的平台特性。文章目录11.5.0新特性1.1语言特性支持JVM记录类Sealed接口内联类1.2Kotlin/JVM稳定的基于IR的JVM编译器新的默认Jvm构建版本是1.8通过invokedynamic来调用SAM使用invokedynamic调用lmab... 查看详情

错误记录kotlin报错(somekotlinlibrariesattachedtothisprojectwerecompiledwithanewerkotlin)(代码片段)

...博客内容可以不看,没啥用;一、报错信息在AndroidStudio中的Kotlin代码无法正常使用代码特性,在顶部报如下错误;Somekotlinlibrariesattachedtothisprojectwerecompiledwithanewerkotlincompilerandca 查看详情

错误记录kotlin报错(somekotlinlibrariesattachedtothisprojectwerecompiledwithanewerkotlin)(代码片段)

...博客内容可以不看,没啥用;一、报错信息在AndroidStudio中的Kotlin代码无法正常使用代码特性,在顶部报如下错误;Somekotlinlibrariesattachedtothisprojectwerecompiledwithanewerkotlincompilerandca 查看详情

android开发语言——kotlin学习笔记(代码片段)

Kotlin本Blog是我学习《Android第一行代码-第三版》的学习笔记,将会不定期断更持续更新。(默认大家都和我一样学过C++或Java的基础语法)。Kotlin简介在Android诞生的前几年中,Java一直是Android的主要开发语言。在2017年&#... 查看详情

kotlin学习——kotlin计算器(代码片段)

我们也学习了这么久的Kotlin了,我们来用Kotlin写一个计算器的小案例吧,这也是比较简单的示例了。我们先来看下效果:先看下这个UI,上面是一个EditText下面是一个RecyclerView,先来写个适配器吧,我们来... 查看详情

kotlin基础学习关键字(代码片段)

Kotlin线上编写练习Kotlin官网提供了PlayGround供大家线上尝试地址:https://play.kotlinlang.org/原文:https://blog.csdn.net/CrazyApes/article/details/126941878文章目录前言关键字硬关键字HardKeywords软关键字SoftKeywords修饰关键字ModifierK 查看详情

kotlin的一些特性记录(代码片段)

Kotlin的解构 在Kotlin中可以把一个对象赋值给多个变量,这种操作叫做解构说明dataclassBoy(varage:Int,varname:String)varboy=Boy(35,"周杰伦")//下面这两种方式都可以获得变了的值var(age,name)=boyvar(age1,name1)=boy上面用关键字da... 查看详情

kotlin的一些特性记录(代码片段)

Kotlin的解构 在Kotlin中可以把一个对象赋值给多个变量,这种操作叫做解构说明dataclassBoy(varage:Int,varname:String)varboy=Boy(35,"周杰伦")//下面这两种方式都可以获得变了的值var(age,name)=boyvar(age1,name1)=boy上面用关键字da... 查看详情