Android Kotlin 开发心得笔记

Kotlin虽说是Java的扩展,能够使用Java类库,但是语法规则完全不同于Java。所以学习Kotlin要么直接忘了Java语法,要么跟Java比较看看区别在哪。经过了一天的折腾我选择先忘掉Java学完Kotlin再比较

关键字(尽量补全)

by as lazy init downTo
声明:open override fun inline inner internal data companion object lateinit var val
判断:when in is
运算:and or

类型

Any Unit
基本类型:Boolean Byte Short Int Long Float Double Char

Android项目中使用Kotlin 1. 安装Kotlit插件

Android Studio 默认没有装Kotlin插件File/Setting/Plugins/Install JetBrains plugin搜索Kotlin点击Install安装,Kotlin Extensions For Android已经过时废弃了。接下来只需要简单的配置就可在项目中使用Kotlin和Java同时开发了。

2. 使用Kotlin

项目gradle加入编译脚本

buildscript { ext.kotlin_version = '1.0.3' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }

当前工程gradle加入引用

apply plugin: 'kotlin-android' //... android { sourceSets { //添加一个源码文件夹 main.java.srcDirs += 'src/main/kotlin' } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' //Kotlin compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" //... }

以上操作其实只需要在Tools->Kotlin->Configure Kotlin in Project即可自动配置

3. 使用Kotlin的Android扩展插件

kotlin-android-extensions使用这个插件,再需要调用findViewById,XML布局定义的控件,会自动生成引用,对于我们来说现在布局文件就是一个属性

加入编译脚本(避免误人子弟这个版本已经很旧了,版本号自行修改)

buildscript { ext.kotlin_version = '1.0.3' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" } }

加入引用

apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' //... dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' //Kotlin compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" //... }

另外还可使用Anko,Anko目的是用代码来代替XML生成布局,加入引用即可

apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' //... dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' //... // Anko compile 'org.jetbrains.anko:anko-sdk15:0.8.2' // sdk19, sdk21, sdk23 are also available compile 'org.jetbrains.anko:anko-support-v4:0.8.2' // In case you need support-v4 bindings compile 'org.jetbrains.anko:anko-appcompat-v7:0.8.2' // For appcompat-v7 bindings } Kotlin 基本语法

先说个学习Kotlin语法的小窍门,将代码用Java写好,然后Code/Conver Java File to Kotlin File转换成Kotlin代码,或者将Java代码复制到Kotlin文件会提示转换也是挺方便的,比较差异很容易就能理解了,一开始难免不适应习惯后相信你一定会喜欢上Kotlin

定义

忘掉Java的那一套写法不然会很不适应的,Kotlin有自己的特性不该被Java的思维所束缚。在Kotlin中常量用val声明,变了用var声明,关键字在前面,类型以冒号:隔开在后面,也可以省略直接赋值,类型后带问号?表示可为空类型(默认空安全)。
常量val延迟加载by lazy{},默认线程安全关闭线程安全lazy(LazyThreadSafetyMode.NONE){},变量var延迟加载lateinit。

//常量数组int[][][] arrs = new int[3][2][1]; val arrs = Array(3) { Array(2) { IntArray(1) } } //空安全变量 var str: String = "hello" //可为空字符串变量 var str1: String? = null 条件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/44130f4f0e49a77a6ac0034f98c62ddf.html