kotlin特色菜

作者: 绮怀先生 | 来源:发表于2018-04-04 18:23 被阅读237次

kotlin配置

//项目build.gradle
buildscript {
    ext.kotlin_version = '1.1.51'//自主选择版本
    repositories {
        ...
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        //AS有新版本会自动在这里提示
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_vers
    }

}
//module中
apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'


kotlin特点

特点1:不用findview,直接用,非常爽

不夸张的说,极大提高开发效率,就算是butterknife+配合Android ButterKnife Zelezny插件也需要几个步骤.个人觉得butterknife已经是被淘汰的库了

import kotlinx.android.synthetic.main.activity_try_kotlin.*

class TryKotlinActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_try_kotlin)
        //直接用view的id
        test_tv.text = "test"
    }
}
<!--activity_try_kotlin.xml-->
<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/test_tv"
    android:layout_gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>


特点2:点击事件代码精简:去你的匿名类
 button.setOnClickListener { button.text="点击事件处理" } 
特点3:没有烦人的";"

代码结尾不需要加上";"之前java代码中总是需要按一下补全代码快捷键,神烦~

特点4:极大消灭了空指针

因为kotlin编译时就会判空,只要自己不作死,基本上跟空指针说拜拜了

以字符串为例

//java字符串判空
if (str!=null && str.length()>0 && str.trim().length()>0) {  
    ......  
}  
var length:Int = 0

val strA:String = "非空字符串"  
 
length=strA.length //不用判空,这样写没有毛病

val strB:String? = null  
//length=strB.length 编译不会通过,因为strB可能为空,会扔出空指针异常  
length = if (strB!=null) strB.length else -1 

//语法糖  ?.  ?:
var length_null:Int?  
//?.表示对象为空时就直接返回null,所以返回值的变量必须被声明为可空类型 
length_null = strB?.length  //strB?.length 等价于  if (strB!=null) strB.length else null

//?:表示为空时就返回右边的值,即(x!=null)?x.**:y  相当于三目运算符
length = strB?.length?: -1  

//如果百分百保证strB非空  运算符“!!”强行放弃了非空判断  通知编译器不做非空校验,运行时一旦发现实例为空就扔出异常
length = strB!!.length  

val strC:String? = "可空字符串"
//即使strC实际有值,也必须做非空判断,谁叫它号称可空呢?编译器宁可错杀一千、不可放过一个  
length = if (strC!=null) strC.length else -1  

特点5:转换现有java代码,无缝切换到kotlin
一键转化kotlin

其他

基本数据类型声明以及转换
//java
Int i=0; 
//kotlin 其他数据类型声明,以此类推
val origin:Float = 65.0f 

//类型转换 
var int:Int = origin.toInt();

//判断是否为空
var isNull:Boolean = origin.isNaN();

声明与操作数组

//java
String[] string_array = new String[] {"zero", "one", "two"};
//kotlin 

//基本变量类型数组
var long_array:LongArray = longArrayOf(1, 2, 3)  
//对象类型数组
var string_array:Array<String> = arrayOf("zero", "one", "two")  

//获取数组长度
var size:Int = string_array.size
//获取数组元素
var str:String = string_array[0]

相关文章

  • kotlin特色菜

    kotlin配置 kotlin特点 特点1:不用findview,直接用,非常爽 不夸张的说,极大提高开发效率,就...

  • 过年办菜!

    家长特色菜1——烧白 家长特色菜2——三香 家长特色菜3——酥肉

  • 特色菜

    晚上老公一边吃着火锅,一边看着电视。 “老婆,你说那军事家真利害,哪的地形,什么样,他脑子里一清二楚。”老公说。 ...

  • 特色菜

    “珰——”下课铃一响,孩子们像出了鸟笼的雀一样,叽叽喳喳沸腾着涌出教室。 铜生和同学们打闹着,说笑着,推搡着拥拥挤...

  • 特色菜

    之前乍一眼看着朋友说外面吃西班牙家庭餐 有一个菜看着很有特色 像鸡吗 乍一眼看 像还有很多毛一起煮的 觉得怎么那么...

  • 特色菜

    要说我们学校的饭菜,呛土豆丝儿可是一绝,没尝过的绝对不知道,尝过肯定让你吓一跳。 微凉的土豆丝,配上一点青椒和小红...

  • Kotlin学习之Kotlin初识

    Kotlin学习之Kotlin初识 @(Kotlin学习) 一、什么是Kotlin? Kotlin,是JetBra...

  • 山庄1

    山庄带院~特色菜~大桌

  • Kotlin之美——DSL篇

    Kotlin 系列:Kotlin之美——高效篇Kotlin之美——DSL篇 Kotlin DSL 把 Kotlin...

  • Kotlin 知识梳理(9) - 委托属性

    Kotlin 知识梳理系列文章 Kotlin 知识梳理(1) - Kotlin 基础Kotlin 知识梳理(2) ...

网友评论

    本文标题:kotlin特色菜

    本文链接:https://www.haomeiwen.com/subject/lfllhftx.html