推荐-关于Kotlin最值得新手看的一篇文章,请耐心看完

简介

Kotlin是一门静态语言,支持多种平台,包括移动端、服务端以及浏览器端,此外,Kotlin还是一门融合了面向对象与函数式编程的语言,支持泛型、安全的空判断,并且Kotlin与Java可以做到完全的交互。

Kotlin特点

代码量少且代码末尾没有分号。

被调用的方法需放到上边。

Kotlin是空安全的:在编译时期就处理了各种null的情况,避免了执行时异常。

它可扩展函数:我们也可以扩展任意类的更多的特性。

它也是函数式的:比如,使用lambda表达式来更方便地解决问题。

高度互操作性:你可以继续使用所有用Java写的代码和库,甚至可以在一个项目中使用Kotlin和Java两种语言混合编程

As安装插件及添加依赖:

插件安装:File->setting->plugin->Kotlin

依赖添加:Tools ->Kotlin->Configure Kotlin in Project 选定模块后会自动添加依赖

Kotlin的一般属性:

作用域:

public:默认,总是可见

internal:同模块可见

protected:类似于private,但对子类也可见

private:声明范围与同模块的子作用域可见,val常量和var变量,默认都是private的

三种方法:

扩展方法:Kotlin中的方法可以直接定义在文件中,而不需要依赖于任何的类;

成员方法:写在class或object中的方法;

本地方法: 定义在方法内部的方法,可以访问外部函数的私有成员

关键字:

var:定义变量,默认是private的

val:定义常量,默认是private的

fun:定义方法,默认是public final

Unit:默认方法返回值,类似于Java中的void,可以理解成返回一个没有意义的值

vararg:可变参数

$:字符串模板(取值)

位运算符:or(按位或),and(按位与),shl(有符号左移),shr(有符号右移),

ushr(无符号右移),xor(按位异或),inv(按位取反)

in:在某个范围中

downTo:递减,循环时可用,每次减1

step:步长,循环时可用,设置每次循环的增加或减少的量

when:Kotlin中增强版的switch,可以匹配值,范围,类型与参数

is:判断类型用,类似于Java中的instanceof()

as:设置别名

数据类型

Kotlin中数字相关的内置类型有: byte、short、Int、Long、Float、Double

需要注意的:

1. 没有自动向上转型,比如Int转Long,需要自己调toXxx方法转;

2.Long类型结尾必须为大写的L,不能为小写,比如1024L

3.字符Char不是Number,用单引号来声明,比如'c',不能像Java一样直接拿来当数字使,如果你想把Char的值给Int,需要调toInt()方法

4.Boolean的值为true或false

5.Kotlin不支持8进制,十六进制0x开头,二进制0b开头

6.位运算符,Java中的与或运算符用:|和&,kotlin中使用or和and关键字来替代其他运算符也有分别的关键字替代:shl(有符号左移),shr(有符号右移),ushr(无符号右移),xor(按位异或),inv(按位取反)

数组:

数组创建:

定长数组:val fixedSizeArray = arrayOfNulls(10)

空数组: val empty = emptyArray()

装箱操作:val arr = arrayOf(1, 2, 3) //还有其他比如IntArrayOf,BooleanArrayOf等

闭包初始化:

val array = Array(10,)

for (i in 0..9) print(array[i])

数组遍历:

for (i in array) { //元素遍历

print(i)

}

for (i in array.indices) { //根据下标遍历

print(array[i])

}

when语句(增强版Switch)

when语句可以匹配类型,值和范围还有参数,而且不用写break语句

例:匹配值与范围

例:匹配类型(只能匹配变量的类型,或else)

例:匹配参数

操作符介绍

?:表示当前对象这个对象可能为空,如:

!!:表示当前对象不为空的情况下执行

==号与===号区别

==判断值是否相等;

===判断值及引用是否完全相等;

: 符号,用于类名后表示继承,用于变量后限定变量类型

.. :区间符号

_(下划线)

::符号

@限定this符号

@作为标签,跳出循环for或forEach

@JvmOverloads方法自动重载

vararg关键字

代表可变参数,只能一个个传值,不能直接使用外部Array,除非使用 ***** 符号表示将Array中所有的元素都当做参数处理

变量赋值

标签法:

invoke()赋值法(同时也能用于方法的调用执行):

if()赋值法:

直接赋值法:

data关键字,适用于解析类

Bean解析:

扩展方法

可以给任何类添加函数(View,Context等),例如:

注意:Kotlin 的方法扩展并不是真正修改了对应的类文件,而是在编译器和 IDE 方面做了处理。使我们看起来像是扩展了方法。

AS中java和kotlin 的代码相互转换:

java ->kotlin4种方法:

1.ctrl + shift + a 快捷键 输入Convert Java File to Kotlin File

2. ctrl +alt + shift + k 将 Java 代码转换为 Kotlin

3.打开要转换的java文件,然后选择 Code -> Convert Java File to Kotlin File (在最底部)

4.鼠标移到java目录下的任意文件位置,鼠标右键后选new->Kotlin File/class(它默认都会在java目录下创建一个.kt文件),最后将要转换的java代码复制到该.kt文件中即会自动完成转换;

kotlin ->java:

先Tools>Kotlin>Show Kotlin Bytecode,然后点击Decompile

更多介绍敬请关注:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181030G0UP0M00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券