Sealed Class 密封类 如果想对能够创建出的子类做限制,可以使用密封类。 下面一个例子是没有使用密封类的: 这类似于只支持加法的抽象语法树, 代表一个表达式,也就是语法树里的一个节点,同时 代表数字节点,它只可能是叶子, 代表加法节点,不可能是叶子。 现在如果我们要实现 函数来计算抽象语法 ...
转载
2021-08-15 11:27:00
157阅读
2评论
官网: http://kotlinlang.org/ http://kotlinlang.org/docs/reference/ 中文教程: http://kotlindoc.com/ Gradle: http://gradle.org/ KotlinMvc: http://code.taobao.
原创
2021-07-23 11:41:51
92阅读
1概述这篇文章首先会介绍Kotlin的特点,接着介绍Kotlin与Java的语法比较。2Kotlin特点一门现代化的编程语言可开发跨平台应用,web,Socket,安卓,js,NativeApp等静态编程语言,性能基本与原声Java相当100%兼容Java(说是兼容但实际上有些坑,可以戳这里看看)简洁:跟Java相比真的是简洁很多,语法糖特别舒服安全:彻底解决写Java基本上都会遇到的著名的Nul
原创
2020-06-26 21:55:50
487阅读
接口: MutableList 实现了 List 接口,因此可以使用 List 接口中的方法和属性,如 get(),size(),contains() 等,同时还额外提供了可以修改列表元素的方法
原创
2023-11-27 11:34:12
169阅读
Kotlin笔记20-泛型和委托-by,lazy原理 12.2 泛型和委托类委托和委托属性序号Tips委托设计模式基本理念操作对象自己不会去处理某段逻辑,而是会把工作委托给另外一个辅助对象去处理Java对于委托并没有语言层级的实现C#对委托进行了原生的支持Kotlin博采众长,支持委托功能类委托核心思想将一个类的具体实现委托给另外一个类去完成类委托class MySet<T>(pri
原创
2022-06-23 18:33:35
182阅读
Kotlin学习笔记0-HelloKotlin
学习Kotlin的一些网站环境在线环境:https://play.kotlinlang.org/Idea工具下载地址:https://www.jetbrains.com/idea-edu/Kotlin官方文档地址:https://kotlinlang.org/docs/home.html准备Kotlin学习环境搭建:
原创
2022-06-24 00:29:01
149阅读
null在Java中 NullPointerException对于我们开发者已经司空见惯,带给我们太多不必要的麻烦,Kotlin对此做了改良,Kotlin更多地把运行时可能会出现 null问题,以编译时报错的方式,提前在编译期强迫我们重视起来,而不是等到运行时报错,防患于未然,提高了程序的健壮性。对于 null值问题,Kotlin反其道而行之,除非另有规定,否则不允许变量为 null,这样一来,因为 null问题导致的运行时崩溃就从根源上得到了解决。如果我们给变量赋值为 null,编译器会.
原创
2021-11-19 10:25:00
314阅读
先吹一波
推荐
原创
2021-11-19 10:25:01
968阅读
继承Kotlin的类默认都是封闭的,要让某个类开放继承,必须使用open关键字修饰它。
原创
2021-12-04 15:01:18
144阅读
匿名函数我们在定义函数时,不给他名字,这个函数就是匿名函数了。匿名函数通常用法是作为参数传递给其他函数或者被其他函数返回。Kotlin因有了匿名函数,我们开发者就可以轻松实现对kotlin标准库内置函数的定制。案例:fun main() { val a = "luffy".count() var b = "luffy love honey".count({ letter -> letter.equals('y') }) println("a == " + a)
原创
2021-11-19 10:24:59
160阅读
定义类针对我们定义的每一个属性,Kotlin都会产生一个field、一个getter和setter,field用来存储属性数据,我们不能直接定义field,Kotlin会封装field,保护它里面的数据,只暴露给getter和setter使用。属性的getter方法决定如何读取属性值,每个属性都有它的getter方法,setter方法决定你如何给属性赋值,所以只有可变属性才会有setter方法,尽管Kotlin会自动提供默认的getter和setter,但在需要控制如何读取属性数据时,我们也可以自定义
原创
2021-11-19 10:25:00
198阅读
Kotlin学习笔记(一)
原创
2022-03-30 11:36:03
10000+阅读
集合集合可以方便我们处理一组数据,也可以作为值参传递给函数,和我们学过的其他变量类型一样,List、Set和Map类型的变量也分为两类,只读和可变。List创建与获取元素getOrElse是一个安全索引取值函数,它需要两个参数,第一个是索引值,第二个是能提供默认值的lambda表达式,如果索引值不存在的话,可用来代替异常。...
原创
2021-11-19 10:25:03
298阅读
外国人写的一个天气预报的例子,最后有源码下载地址,初学者可以研读一下 1:Kotlin介绍及项目配置 2:Kotlin与Java简单比较 3:Kotlin中类与函数 4:Kotlin中变量及属
原创
2021-07-20 14:46:50
155阅读
Kotlinprons:语法糖Null Safety函数式编程代数类型不可变对象#1kotlin中class没有静态方法/类属性,定义companion object,作为一个放置工厂函数和静态成员的地方,同时能...
原创
2021-08-13 11:42:39
151阅读
本文是阅读《kotlin编程实战》的读书总结,主要内容是第三部分函数式的Kotlin,使用la
原创
2022-12-19 13:50:43
64阅读
Kotlin笔记19-泛型和委托-T 12.1 泛型和委托泛型的基本用法
T: 泛型
序号Tips定义方式一种是定义泛型类,另一种是定义泛型方法T语法结构: < T>< T>这里的T不是固定的,可以为其他字母单词,T是一种约定俗成的泛型写法泛型类Example:class MyClass<T>{ fun method(param:T):T{
原创
2022-06-23 18:34:09
578阅读
Kotlin笔记18-高阶函数的应用 11.1 高阶函数的应用简化SharedPreferences序号向SharePreferences存储数据的过程1调用其edit()方法获取SharedPreferences.Editor对象2向SharePreferences.Editor对象中添加数据3调用apply()方法将添加的数据提交,完成数据存储操作描述转化成代码:val edior=
原创
2022-06-23 18:34:38
133阅读
Kotlin笔记21-infix,高级语法糖 13.1 infix,高级语法糖infix函数
infix
举个栗子:"Hello Kotlin".startsWith("Hello")采用infix:infix fun String.beginsWith(prefix: String) = startsWith(prefix)调用:"Hello Kotlin" be
原创
2022-06-23 18:32:41
588阅读
Kotlin笔记12-标准函数和静态方法-run,with,apply 7. 标准函数和静态方法标准函数with,run,applywith
with: 参数一:任意类型的对象,参数二:Lambda表达式
序号Tips1Lambda表达式的最后一行作为返回值返回标准格式:val result = with(obj) { //这里是obj的上下文 "value" //with函数
原创
2022-06-24 00:26:21
132阅读