kotlin基础语法:变量、基本类型、函数、循环结构、面向对象及kotlin编译器工作原理

本文详细介绍了Kotlin的基础语法,包括变量、基本类型、字符串、数组和数字转换。深入探讨了函数的声明方式、默认参数、命名参数以及循环结构。同时,文章还讲解了Kotlin的面向对象特性,如类、抽象类、接口、数据类和密封类。最后,文章讨论了Kotlin编译器的工作原理,如何在保持兼容性的同时优化性能,以及如何通过反编译理解Kotlin的实现方式。
摘要由CSDN通过智能技术生成

 变量

Java:修饰符 变量类型 变量名 值

private String name = "张三"

可变变量 var关键字

不可变变量 val 关键字【不变性】

var name: String = "张三"
val name: String = "张三" //推荐使用不变性变量

在kotlin中变量、方法等不加修饰符权限统一默认为public
而Java默认是default

【类型推导】

val name = "张三" //kotlin会根据变量值推导出类型,所以类型可以省略,这些省略的代码都会由kotlin编译器将其补上

【空安全】?

/* kotlin中的变量还分为可空变量和不可空变量 */
val name = null //编译报错,因为name是不可空变量,自然不能赋值为null

val name? = null //加上? 说明是可空变量

相互赋值

可空变量不可以直接赋值给不可空变量,因为可空变量有可能是null值;反之可以赋值

kotlin语法取消了分号结尾,简化了编码

基本类型

Java并不是一切皆为对象,因为存在基本数据类型

优点:提高效率,节省空间;出于性能考虑

缺点:无法很好地融入面向对象的系统中

kotlin做到了一切皆为对象,不存在不是对象的原始类型

val int = 1  //Int
val long = 1L //Long
val float = 1.0f //Float
val double = 1.0 //Double
val xx = 0x13 // 0x代表十六进制
val oo = 0b4 //0b代表八进制

val char = 'a' //Char
val byte = 1 //Byte
val boolean = true / false //Boolean
val short = 1 //Short

字符串

val name = "kotlin" //使用和Java一致,kotlin中的字符串也是不可变的
println("name is $name") //字符串模板 支持拼接符 类似JSP写法
println("姓名${name}年龄${age}") //复杂字符串拼接使用大括号,后面接汉字的情况需要使用大括号

原始字符串

使用三引号括起来,保持字符串格式不变 

val first = """1.爱国、敬业、诚信、友善
               2.自由、平等、公正、法制
               3.富强、民主、文明、和谐"""
// kotlin中的原始字符串,定义时是什么样,打印出来就是什么样,省去了Java中的换行符\n等等

数组 

Java中的数组由于不属于Java集合,所以不能使用集合中常用的方法,需要使用者记两套方法,kotlin中的数组虽然也不是集合,但是和集合使用相同的方法

// Java中集合和数组的方法不一样
private ArrayL;ist list = new ArrayList<>();
System.out.println(list.size()); //集合获取长度
list.get(0);//集合获取元素
private String[] arrs = {};
System.out.println(arrs.length());//数组获取长度
arrs[0] = 1;//数组获取元素

//k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有 朝一 日

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值