Kotlin
文章平均质量分 85
叫我旺仔
凡有所相,皆是虚妄。
展开
-
Kotlin学习(三): 属性和字段
声明属性(Declaring Properties)Kotlin中可以使用var关键字声明可变属性,或者用val关键字声明只读属性,属性的类型在后面,变量名在签名,中间加冒号和空格。public class Address { public var name: String = ... public var street: String = ... public var ci原创 2017-02-28 21:50:58 · 3831 阅读 · 0 评论 -
Kotlin学习(十三): 集合(Collections)和范围(Ranges)
高阶函数,又称算子(运算符)或泛函,包含多于一个箭头的函数,高阶函数是至少满足下列一个条件的函数:1.接受一个或多个函数作为输入,2.输出一个函数。 在无类型Lambda 演算,所有函数都是高阶的;在有类型Lambda 演算(大多数函数式编程语言都从中演化而来)中,高阶函数一般是那些函数型别包含多于一个箭头的函数。在函数式编程中,返回另一个函数的高阶函数被称为Curry化的函数。 在很原创 2017-10-08 18:09:36 · 614 阅读 · 0 评论 -
Kotlin学习(十四): 类型别名(Type aliases)和注解(Annotations)
高阶函数,又称算子(运算符)或泛函,包含多于一个箭头的函数,高阶函数是至少满足下列一个条件的函数:1.接受一个或多个函数作为输入,2.输出一个函数。 在无类型Lambda 演算,所有函数都是高阶的;在有类型Lambda 演算(大多数函数式编程语言都从中演化而来)中,高阶函数一般是那些函数型别包含多于一个箭头的函数。在函数式编程中,返回另一个函数的高阶函数被称为Curry化的函数。 在很原创 2017-10-08 18:10:11 · 2000 阅读 · 0 评论 -
Kotlin学习(七): 类和继承、接口与实现
本文是学习Kotlin的类和继承相关,嵌套类相关,接口相关。类Kotlin的类的声明与Java一样,使用class关键字class Invoice {}类的声明包含类名,类头(指定类型参数,主构造函数等等),以及类主体,用大括号包裹。类头和类体是可选的;如果没有类体可以省略大括号。class Empty构造函数Kotlin的类有两种构造函数,一种是主构造函数,一种是二级构造函数。 主构造函数是写原创 2017-10-08 18:05:47 · 1563 阅读 · 0 评论 -
Kotlin学习(十五): 解构声明(Destructuring Declarations)
Kotlin1.1.3发布,Kotlin 插件现在支持在编辑器的提示中显示推导的变量、函数和参数类型。默认情况下该功能是禁用的,可以在编辑器的设置中启用它。下面进入正文,有时候要获取一个对象的属性,会定义很多个变量,这样子就会很麻烦,而在Kotlin中有个很方便的用法,就是使用解构声明。创建变量在Java中创建多个变量Person person = new Person("person", 1);原创 2017-11-03 08:26:40 · 840 阅读 · 0 评论 -
Kotlin学习(十七): 运算符重载
在前面写了关于集合和范围的内容,里面包括了一点运算符重载的内容,在这里我们来详细了解运算符重载的知识,内容参考《Kotlin实战》(Kotlin in Action)。什么是运算符重载?简单来说,就是Kotlin通过调用自己代码中定义特定的函数名的函数(成员函数或者扩展函数),并且用operator修饰符标记,来实现特定的语言结构,例如如果你在一个类上面定义了一个特定函数命名plus的函数,那么按照原创 2017-11-19 20:40:47 · 722 阅读 · 0 评论 -
Kotlin学习(十六): 关键字与操作符(Keywords and Operators)
本文同步更新于旺仔的个人博客,访问可能有点慢,多刷新几次。Kotlin中有一些常用的关键字和标识符,同时还有一些操作符和特殊符号,这些都是和Java有不一样的地方的,这里将他们介绍一下,方便记忆和回看。硬关键字(Hard Keywords)Kotlin中的硬关键字不能作为标识符package与Java一样,Kotlin的源文件同样以包声明开始的。package foo.barfun baz() {}原创 2017-11-03 08:24:23 · 3624 阅读 · 1 评论 -
Kotlin常见问题和代码
高阶函数,又称算子(运算符)或泛函,包含多于一个箭头的函数,高阶函数是至少满足下列一个条件的函数:1.接受一个或多个函数作为输入,2.输出一个函数。 在无类型Lambda 演算,所有函数都是高阶的;在有类型Lambda 演算(大多数函数式编程语言都从中演化而来)中,高阶函数一般是那些函数型别包含多于一个箭头的函数。在函数式编程中,返回另一个函数的高阶函数被称为Curry化的函数。 在很原创 2017-10-08 18:10:33 · 3381 阅读 · 0 评论 -
Kotlin学习(十九): 属性自动生成方法所引发问题
在Kotlin中创建一个属性,如果是val,那么会自动生成getter方法,如果是var,那么会自动生成getter和setter方法。class MethodFoo() { var a: Int = 1 var b: Int = 2}生成的class内容public final class MethodFoo { private int a = 1; private原创 2017-12-04 11:00:58 · 4827 阅读 · 1 评论 -
Kotlin学习(十八): 委托模式(Delegate)和委托属性(Delegate Properties)
委托模式已经被证明是实现继承的一个很好的替代方式,在扩展一个基类并且重写方法时,基类就必须依赖子类的实现,当不断地修改的时候,基类就会失去当初的性质,Kotlin中就将类默认为final,确保不会被修改。有一种模式是装饰器模式,本质就是创建一个新类,实现与基类一样的接口,并且将类的实现作为一个字段保存,这样就能在基类不被修改就能直接修改基类的实例。但是这样的缺点是会造成很多的样板代码。class D原创 2017-11-26 20:50:10 · 7161 阅读 · 4 评论 -
Kotlin实战(三): 动手撸个玩Android客户端
玩Android鸿洋大神的玩Android网站。 本网站每天新增20~30篇优质文章,并加入到现有分类中,力求整理出一份优质而又详尽的知识体系,闲暇时间不妨上来学习下知识; 除此以外,并为大家提供平时开发过程中常用的工具以及常用的网址导航。可以在 https://github.com/hongyangAndroid/xueandroid项目中以issue的形式提出任何好的建议。接口由玩Andr原创 2018-01-01 00:36:01 · 2338 阅读 · 0 评论 -
Kotlin学习(十二): 函数、高级函数和Lambda表达式
高阶函数,又称算子(运算符)或泛函,包含多于一个箭头的函数,高阶函数是至少满足下列一个条件的函数:1.接受一个或多个函数作为输入,2.输出一个函数。 在无类型Lambda 演算,所有函数都是高阶的;在有类型Lambda 演算(大多数函数式编程语言都从中演化而来)中,高阶函数一般是那些函数型别包含多于一个箭头的函数。在函数式编程中,返回另一个函数的高阶函数被称为Curry化的函数。 在很原创 2017-10-08 18:08:57 · 570 阅读 · 0 评论 -
Kotlin实战(二): 实现RecyclerView多种Item布局
前言RecyclerView出来很久了,可以说一出来就将ListView给比下去了,当然,Recyclerview有它的好,ListView的好,并不是说一定要用Recyclerview,最适用自己项目的才是最好的。在这里我们将用Kotlin来实现RecyclerView的多种item布局,和单个item布局,同时写一个通用的Adapter。使用先将写完的代码的使用方式展示一下:一种item布局cl原创 2017-10-08 18:08:18 · 4087 阅读 · 0 评论 -
Kotlin学习(一)Kotlin插件安装
什么是Kotlin? Kotlin是针对JVM、Android 和浏览器的静态编程语言! 100% 与 Java™ 可互操作!Kotlin的插件安装原创 2016-10-19 09:55:44 · 15721 阅读 · 2 评论 -
Kotlin学习(二)基本语法
定义包名(Basic Syntax)与Java定义包名一样,在源文件的开头定义包名:package my.demoimport java.util.*// ... 包名和文件夹路径可以不一致:源文件可以放在项目的任意位置。定义函数(Defining functions)与Java定义函数的区别在于:Kotlin在定义函数的时候要加个fun关键词,函数的返回值前后不同,Java的在前面,如原创 2017-02-25 20:38:03 · 730 阅读 · 0 评论 -
Kotlin学习(四): 基本类型(Basic Types)
本文是学习Kotlin的基本类型,Kotlin的基本类型与Java有一些不同,例如整数类型,Java是int表示,而Kotlin是Int表示;例如布尔类型,Java是boolean表示,而Kotlin是用Boolean表示。在 Kotlin 中,所有变量的成员方法和属性都是一个对象,我们可以在任何变量上调用成员函数和属性。 在本文中,将会讲解经常被使用的类型:Numbers,Characters,原创 2017-10-08 17:58:07 · 598 阅读 · 0 评论 -
Kotlin学习(五): 惯用语法和代码风格(Idioms And Coding Conventions)
本文是学习Kotlin的惯用语法和代码风格,与Java的语法和代码风格有一些相同,也有一些不同。创建DTO’s(POJOs/POCOs)数据类(Creating DTOs (POJOs/POCOs))data class Customer(val name: String, val email: String)这里的Customer是数据类,在Kotlin中,会自动为Customer类生成以下方法原创 2017-10-08 18:02:58 · 655 阅读 · 0 评论 -
Kotlin学习(六): 包、控制流、返回与跳转
本文是学习Kotlin的包相关,控制流相关以及返回与跳转相关,与Java比较大的区别是Kotlin用when来替换掉Java的switch,写好简单,可以有各种类型值的判断,另外可以指定返回和跳转到指定标签的位置。包(Package)与Java一样,Kotlin的源文件同样以包声明开始的。package foo.barfun baz() {}class Goo {}// ...源文件的所有内容(如类原创 2017-10-08 18:03:56 · 550 阅读 · 0 评论 -
Kotlin实战(一): 写一个登录的Demo
前言如何安装Kotlin可以参考Kotlin学习(一): Kotlin插件安装这篇文章。demo说明该demo是使用Kotlin写的登录demo,使用MVP模式,里面用到了Retrofit+RxJava,然后用了Mob的登录Api接口作为登录和注册的判断,Mob提供了很多免费的接口。Activity直接将控件的id当成变量来使用 设置点击事件login.setOnClickListener(thi原创 2017-10-08 18:05:25 · 3443 阅读 · 1 评论 -
Kotlin学习(八): 对象表达式和声明(Object Expressions and Declarations)
2017年的Google I/O大会上谷歌宣布Kotlin正式成为Android的官方语言。下面我们来继续学习Kotlin中的对象表达式和声明(Object Expressions and Declarations)的相关知识。对象表达式和声明(Object Expressions and Declarations)在写代码的时候,会创建一个对当前类做轻微修改的对象,而不用重新声明一个子类,Kot原创 2017-10-08 18:06:24 · 339 阅读 · 0 评论 -
Kotlin学习(九): 扩展(Extensions)和This表达式
扩展是Kotlin中特别强大的一个功能,如扩展函数,本文是学习Kotlin中的扩展(Extensions)和This表达式的相关知识。扩展(Extensions)在Java开发时,会经常将那些共用的方法写到一个Utils类,如FileUtils,StringUtils等等。很有名的java.util.Collections也是其中一员的,在使用的时候Collections.swap(list, Co原创 2017-10-08 18:06:50 · 586 阅读 · 0 评论 -
Kotlin学习(十): 可见性修饰符和数据类
Java中有可见性修饰符(private…),而Kotlin中也是有这样的修饰符,但也有一些不一样,下面来学习Kotlin中的可见性修饰符(Visibility Modifiers)和数据类(Data Classes)的相关知识。可见性修饰符(Visibility Modifiers)Kotlin有四种可见性修饰符,分别是public、internal、protected和private,默认的修饰原创 2017-10-08 18:07:09 · 428 阅读 · 0 评论 -
Kotlin学习(十一): 泛型(Generics)
泛型,即“参数化类型”,顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。接下来学习Kotlin中的泛型,Kotlin的泛型为类型安全提供保证,相比与Java更安全。泛型在Java中经常会用到泛型:class Box<T>{ private T var ; }// 使用Bo原创 2017-10-08 18:07:32 · 488 阅读 · 0 评论 -
Kotlin学习(二十): Kotlin实现流的读取的方案
在Java对流的读取是下面的那样,当前不要忘记流的关闭close。// java 代码void someFunc(InputStream in, OutputStream out) throws IOException { int read; while ((read = in.read()) != -1) { out.write(read); }}原创 2018-01-22 10:11:38 · 10828 阅读 · 4 评论