Kotlin
爱喝白酒的啤酒猫
这个作者很懒,什么都没留下…
展开
-
android kotlin基础(一)-新建项目
1.安装Android studio3.0 Canary版本或在低版本Android studio中引入插件。 注:本文是基于studio3.0 Canary3示例。 Project gradle代码如下:buildscript { repositories { maven { url 'https://maven.google.com' } jcenter原创 2017-06-05 09:40:31 · 524 阅读 · 0 评论 -
kotlin-中缀函数
/** *自定义中缀函数--->(扩展函数) * 1.使用infix在fun前修饰 * 2.只能有一个参数(uniqueParam) * 3.是二元的的,参数1:实例(北京);参数二:参数 */ infix fun String.中缀(uniqueParam: String): String { return "啦啦...原创 2018-05-14 16:16:33 · 2486 阅读 · 0 评论 -
android studio3.0 kotlin配置Anko
1.在project的build gradle中引入 ext.anko_version = ‘0.10.0-beta-2’buildscript { ext.kotlin_version = '1.1.2' ext.anko_version = '0.10.0-beta-2' repositories { jcenter() } dependen原创 2017-06-09 17:59:06 · 2377 阅读 · 0 评论 -
Error:Unable to find method 'com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()L
android studio 3.0 canary3报错: Error:Unable to find method ‘com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava/util/List;’. Possible causes for this unexpected error in原创 2017-06-08 12:41:14 · 1618 阅读 · 0 评论 -
Android kotlin静态属性、静态方法
只需要用 companion object 包裹相应代码块即可。以静态属性为例:class Constants { companion object { val BASE_URL = "http://192.168.x.x/decoration_axx_api/" }}调用 Constants.Companion.getBASE_URL()原创 2017-06-07 17:21:25 · 11523 阅读 · 0 评论 -
android studio 3.0 使用Kotlin抛弃findViewById()
要是用kotlin这项碉堡的功能,直接使用布局id,必须要在app build gradler中加入: apply plugin: ‘kotlin-android-extensions’在直接使用布局id是导入的包为: import kotlinx.android.synthetic.main.activity_main.*studio代码提示如下:原创 2017-06-07 14:05:40 · 3131 阅读 · 0 评论 -
android kotlin扩展函数
Kotlin的扩展函数功能使得我们可以为现有的类添加新的函数,而不用修改原来的类。这可以帮助我们简化代码而且让封闭的类打破局限.这些函数通常会替代工具类。示例:fun intMult(num: Int): Int { return num * 2}我们可以在任意的地方声明这个函数(例如一个工具类文件), 并在我们的Activities中当作一个普通方法使用:intMult(2)当然在定义拓展原创 2017-06-07 11:00:36 · 1138 阅读 · 0 评论 -
android kotlin与 Java 语言比较
Kotlin 解决了一些 Java 中的问题 Kotlin 通过以下措施修复了 Java 中一系列长期困扰我们的问题 空引用由类型系统控制。 无原始类型 Kotlin 中数组是不型变的 相对于 Java 的 SAM-转换,Kotlin 有更合适的函数类型 没有通配符的使用处型变 Kotlin 没有受检异常Java 有而 K原创 2017-06-05 17:29:46 · 523 阅读 · 0 评论 -
android kotlin与Java互操作(二)Java 中调用 Kotlin
静态字段 在命名对象或伴生对象中声明的 Kotlin 属性会在该命名对象或包含伴生对象的类中 具有静态幕后字段。通常这些字段是私有的,但可以通过以下方式之一暴露出来: @JvmField 注解; lateinit 修饰符; const 修饰符。 静态方法 如上所述,Kotlin 将包级函数表示为静态方法。 Kotlin 还可以为命名对象或伴生对象中定义的原创 2017-06-05 17:26:22 · 2581 阅读 · 0 评论 -
android kotlin与Java互操作(一)在 Kotlin 中调用 Java 代码
已映射类型 Kotlin 特殊处理一部分 Java 类型。这样的类型不是“按原样”从 Java 加载,而是 映射 到相应的 Kotlin 类型。 映射只发生在编译期间,运行时表示保持不变 Java 类型 Kotlin 类型 byte kotlin.Byte short kotlin.Short int kotlin.Int long kotlin.Long原创 2017-06-05 17:21:28 · 3917 阅读 · 0 评论 -
android kotlin其它(二)集合、区间、操作符
集合 与大多数语言不同,Kotlin 区分可变集合和不可变集合(lists、sets、maps 等) Kotlin 没有专门的语法结构创建 list 或 set。 要用标准库的方法,如 listOf()、 mutableListOf():可变、 setOf()、 mutableSetOf()。 在非性能关键代码中创建 map 可以用一个简单的惯用法来完成:mapOf(a to b, c to d原创 2017-06-05 16:50:37 · 1008 阅读 · 0 评论 -
android kotlin其它(一)解构声明
有时把一个对象 解构 成很多变量会很方便,例如:val (name, age) = person这种语法称为 解构声明 。一个解构声明同时创建多个变量。 我们已经声明了两个新变量:name 和 age,并且可以独立使用它们:println(name)println(age)一个解构声明会被编译成以下代码:val name = person.component1()val age = person原创 2017-06-05 16:05:08 · 396 阅读 · 0 评论 -
android kotlin类和对象(三)-对象
类、对象、接口、构造函数、方法、属性和它们的 setter 都可以有 可见性修饰符。 (getter 总是与属性有着相同的可见性。) 在 Kotlin 中有这四个可见性修饰符:private、 protected、 internal 和 public。 如果没有显式指定修饰符的话,默认可见性是 public。 对象声明 单例模式是一种非常有用的模式,而 Kotlin(继 Scala 之后)使单例原创 2017-06-05 15:48:55 · 812 阅读 · 0 评论 -
android kotlin类和对象(二)-属性和字段
Kotlin的类可以有属性。 属性可以用关键字var 声明为可变的,否则使用只读关键字val。 要使用一个属性,只要用名称引用它即可,就像 Java 中的字段:fun copyAddress(address: Address): Address { val result = Address() // Kotlin 中没有“new”关键字 result.name = address.原创 2017-06-05 15:33:19 · 528 阅读 · 0 评论 -
android kotlin类和对象(一)-类和继承
构造函数 在 Kotlin 中的一个类可以有一个主构造函数和一个或多个次构造函数。主 构造函数是类头的一部分:它跟在类名(和可选的类型参数)后。class Person constructor(firstName: String) {}如果主构造函数没有任何注解或者可见性修饰符,可以省略这个 constructor 关键字。class Person(firstName: String) {}主原创 2017-06-05 15:05:50 · 1598 阅读 · 0 评论 -
android kotlin基础(二)-基本类型
数字 Kotlin 处理数字在某种程度上接近 Java,但是并不完全相同。例如,对于数字没有隐式拓宽转换(如 Java 中 int 可以隐式转换为long——译者注),另外有些情况的字面值略有不同。 Type Bit width Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8数字字面值中的下原创 2017-06-05 13:52:01 · 779 阅读 · 0 评论 -
android kotlin基础(三)-控制流
If表达式 在 Kotlin 中,if是一个表达式,即它会返回一个值。 因此就不需要三元运算符(条件 ? 然后 : 否则),因为普通的 if 就能胜任这个角色。// 传统用法var max = a if (a < b) max = b// With else var max: Intif (a > b) { max = a} else { max = b}// 作为表达原创 2017-06-05 14:01:28 · 359 阅读 · 0 评论 -
android kotlin基础(四)-返回和跳转
Kotlin 有三种结构化跳转表达式:return。默认从最直接包围它的函数或者匿名函数返回。break。终止最直接包围它的循环。continue。继续下一次最直接包围它的循环。Break 和 Continue 标签 在 Kotlin 中任何表达式都可以用标签(label)来标记。 标签的格式为标识符后跟 @ 符号,例如:abc@、fooBar@都是有效的标签。 要为一个表达式加标签,我们只原创 2017-06-05 14:14:59 · 1531 阅读 · 0 评论 -
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Message
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Message 只有空安全(?)或非空的声明(!!)被允许在类型消息的可空接收器上调用。 1.?:在非空的情况下执行语句,为空时直接返回null 1.!!:表示忽略语言的判空检查,即允许程序报NullP...原创 2018-05-23 15:53:19 · 8463 阅读 · 0 评论