kotlin基本语法

kotlin基本语法学习

一、kotlin 语言介绍

​ 与java类似的一种基于JVM虚拟机的语言,java其实也是一种解释型语言,生成的class文件供JVM解释,同时kotlin也是一样的kotlin就是为了解决java的各种痛点而产生的,利用kotlin可以大大减少开发过程中的代码量编写,有一套几乎可以杜绝空指针的机制,kotlin没有分号

二、如何运行Kotlin代码

​ 郭霖大神这本第三行代码是在AS里面运行的,当然我们也可以用idea运行,eclipse应该也可以多安装一个kotlin插件就ok,生成后缀为kt的kotlin文件,利用以下简单代码段即可编写第一个程序,与java的主函数很像,不过代码更加简洁

fun main (){
    prinln("hello world")
}

三、编程之本:变量和函数

1.变量

val a //a声明为不可变的
var b//b声明为可变的

​ 为了保证程序中变量的稳定,kotlin语言设计之初就推荐我们尽量使用val定义变量,除非变量必须要改变

val a = "hhhh"
val a :String = "hhhhh"

​ kotlin 有一套出色的类型推导机制,所以不指定时根据后面的赋值即可自动推导出他的类型,如果需要指定,需要:变量类型,有一点与java不同的就是,kotlin没有基本类型,全部利用类来替代,Int 相当于 int ,首字母全部大写。

2.函数

​ 与java相似,method方法Java中的称呼,本质上是一样的,不过有一个比较特殊的,即语法糖,当只有一行代码时,可以直接将其写在尾部然后利用等号连接

fun hhh(name : String ,adress : String ) = max (name.length,adress.length)
fun hhh(name : String ,adress : String ) :Int{
    max (name.length,adress.length)
}

四、程序的逻辑控制

1.if条件语句

​ if语句拥有和java几乎一样的功能和用法,不过kotlin的if具有返回值,这使得它可以利用语法糖来简化代码,以每个条件的最后一行作为返回值

fun hhh(name :String ,adress :String ) = if (name.length > adress.length) name.length else adress.length

2.when 条件语句

​ 类似于java里面的switch语句,不过解决了很多痛点,例如break经常忘记加,以及匹配值类型的局限性,利用when可以省去很多不必要的代码

//基本形式为 匹配值 -> {代码块}
fun getScore (name :String ) = when (name){
    "Tom" -> 86
    "Jim" -> 77
    else -> 0
}

​ 还有一种不带参数的写法,更加灵活

fun getScore (name :String ) = when {
    name.startsWith("Tom") -> 86
    name == "Tom" -> 86
    name == "jim" -> 77
    else -> 0
}

3.循环语句

​ kotlin 里面的for循环是for in ,比java里面的加强for更加好用,while的用法二者几乎一样

//kotlin里面有区间这个概念
//for exmple
val a = 1..10
//代表区间[1,10]间隔1
val b = 0 until 10
//代表区间[0,10)
//也可以设置间隔
val c = 1..10 step 2
//也可以倒序输出
val d = 10 downTo 1

五、面向对象编程

1.类与对象

​ 类和java中的差不多,就是不用加new关键字了

2.继承与构造函数

​ java里面默认继承object类,而kotlin则默认不继承,需要加上open关键字才可以,继承只需要加上:即可

//即Student继承Person
open class Person(){
    
}

class Student :Person(){
    
}

​ 构造函数相对而言比较复杂,分为主构造函数和次构造函数,次构造函数用constructor声明

3.接口

与继承使用差不多,允许对接口进行默认实现,java和kotlin中有函数可修饰的修饰符

Java public private protected default
Kotlin public private protected internal

Java 默认default 而kotlin默认public

4.数据类和单例类

数据类 :class前面加个data即可

单例类:创建类时使用object关键词

六、Lambda 编程

1.集合的创建以及使用

Set 不存放重复元素,map可以利用类似数组下标进行赋值,list可以简化赋值

2.集合的函数式API

lambda表达式的基本语法结构

{参数名1:参数类型,参数名2:参数类型 -> 函数体}

最后一行代码作为函数的返回值

3.Java函数式API的使用

与后面android sdk 接入有关,不过目前还没怎么看懂,用到了再说

七、空指针检查

1.可空类型系统

kotlin默认所有变量都不可为空

类型?代表此类型可为空

2.判断辅助工具

?.//代表为空什么都不做,不为空执行句号后面的逻辑
?://不为空返回左边,否则返回右边的
!!//强制判断非空
let//就不太明白

八、kotlin的小魔术

1.字符串内嵌表达式

利用$进行内嵌,解决java字符串拼接时一堆加号和分号的痛点

val a = "22"
val b = "67"
println("$a + hhhh + $b")
//相当于java的这种效果
//println(a+"hhhh"+b);

函数的参数默认值

可以通过键值对进行传参,可以做到和次构造函数一样的作用

关注我的技术公众号,每天都有优质技术文章推送。

微信扫一扫下方二维码即可关注:

kotlin基本语法
上一篇:Javascript – 检查用户是否正在编辑文本输入


下一篇:KeyPress 和KeyDown KeyPress之间的区别