
Kotlin学习之变量和函数的讲解
Kotlin完全抛弃了Java中的基本数据类型,全部使用了对象数据类型。在Java中int是整型变量的关键字,而在Kotlin中Int变成了一个类,它拥有自己的方法和继承结构。
当一个函数的函数体中只有一行代码时,可以使用单行代码函数的语法糖:
发布日期:2021-05-06 00:55:37
浏览次数:10
分类:技术文章
本文共 2290 字,大约阅读时间需要 7 分钟。
1. Kotlin学习
1.1 为什么要学习Kotlin
1.1.1 发展历程
1.2011年,JetBrains发布了Kotlin的第一个版本,并在2012年将其开源。2.2016年Kotlin发布了1.0正式版,代表着Kotlin语言已经足够成熟和稳定了,并且JetBrains也在自家的旗舰IDE开发工具IntelliJ IDEA中加入了Kotlin的支持。3.2017年Google宣布Kotlin正式成为Android开发一级语言,并且Android Studio也加入了对Kotlin的支持。4.2019年Google正式宣布了Kotlin First,未来提供的官方API也将会以Kotlin版本为主。
1.2.相比于Java的优势
1.语法更加简洁,对于同样的功能,使用Kotlin开发的代码量可能会比使用Java开发的减少50%甚至更多。2.语法更加高级,相比于Java比较老旧的语法,Kotlin增加了很多现代高级语言的语法特性,使得开发效率大大提升。3.语言更加安全,Kotlin几乎杜绝了空指针这个全球崩溃率最高的异常。4.和Java是100%兼容的,Kotlin可以直接调用使用Java编写的代码,也可以无缝使用Java第三方的开源库。这使得Kotlin在加入了诸多新特性的同时,还继承了Java的全部财富。
1.3 三.工作原理
Kotlin可以做到和Java 100%兼容,这主要是得益于Java虚拟机的工作机制。其实Java虚拟机并不会直接和你编写的Java代码打交道,而是和编译之后生成的class文件 打交道。而Kotlin也有一个自己的编译器,它可以将Kotlin代码也编译成同样规格的class文件。Java虚拟机不会关心class文件是从Java编译来的,还是从Kotlin编译来的,只要是符合规格的class文件,它都能识别。
2. 正式学习Kotlin语法
我的 Kotlin代码的运行环境为Android Studio
如果你们没有这个IDE , 这里分享一个在线运行 Kotlin 代码的网址
2.1 变量和函数
Kotlin中定义一个变量,只允许在变量前声明两种关键字:val和var。
- var(variable的简写的简写)用来声明一个可变的变量,这种变量在初始赋值之后仍然可以再被重新赋值复制,对应Java中的非final变量。
- val(value的简写的简写)用来声明一个不可变的变量,这种变量在初始赋值之后就再也不能重新赋值,对应Java中的final变量。
注意:Kotlin代码不用加分号
var a = 10
Kotlin可以根据后面的数据来自动推导数据类型, 如果后面没有赋值, 则应该显式的声明变量的类型
var a: Int = 10
比如这样
测试代码:
//主函数fun main() {// 输出 Hello Kotlin println("Hello Kotlin")// 定义一个 a变量 并且赋值为10 var a = 10 println("a = " + a)// a * = 10 进行一个简单的计算 a *= 10 println("a = " + a)}
运行结果:

对照表:

2.2 函数
fun methodName(param1: Int, param2: Int): Int { return 0}
说明:fun(function的简写)是定义函数的关键字,无论你定义什么函数,都一定要使用fun来声明。紧跟在fun后面的是函数名,良好的编程习惯是函数名最好要有一定的意义,能表达这个函数的作用是什么。函数名后面的一对括号中,可以声明该函数接收什么参数。括号后面的部分是可选的,用于声明该函数会返回什么类型的数据。如果不需要返回任何数据,这部分可以不写。两个大括号之间的内容就是函数体了,可以在这里编写函数的具体逻辑。
测试代码:
//主函数fun main() {// 因为 1 < 2 所有这里会打印 2 println(largerNumber(1,2))}//返回2个参数中最大的那个数fun largerNumber(num1: Int, num2: Int): Int { return max(num1, num2);}
说明: max是Kotlin内置的一个函数
运行结果:
fun largerNumber(num1: Int, num2: Int)= min(num1,num2)
使用这种写法,可以直接将唯一的一行代码写在函数定义的尾部,中间用等号连接即可。return关键字也可以省略,等号足以表达返回值的意思。Kotlin还拥有出色的类型推导机制,可以自动推导出返回值的类型。
测试代码:
//主函数fun main() {// 因为 1 < 2 所有这里会打印 1 println(smallerNumber(1,2))}//返回2个参数中最大的那个数fun largerNumber(num1: Int, num2: Int): Int { return max(num1, num2);}
运行结果:

发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年03月22日 12时26分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
SpringBoot配置文件中的值获取
2019-03-01
Java实现压缩与解压
2019-03-01
Mybatis-plus代码生成器模板(MySQL数据库)
2019-03-01
使用redis管理Mybatis的二级缓存
2019-03-01
使用redis管理Mybatis-Plus的二级缓存
2019-03-01
Spring Boot常用的maven依赖
2019-03-01
Mybatis中的SQL语句等于、不等于和模糊查询的语法
2019-03-01
用xacro给自己的ROS小车编写模型
2019-03-01
使用 github 搜索
2019-03-01
.net core 中使用 EFcore做ORM
2019-03-01
那些用过一次就不会卸载的软件
2019-03-01
工具-snipate(截图)
2019-03-01
java有包名的类访问没有包名的类
2019-03-01
python中快速删除重复元素
2019-03-01
手绘导图版:深入解析机器学习在风控场景中的8大应用
2019-03-01
长期豪赌人工智能,Alphabet是怎样一步一步偷偷改变世界的?
2019-03-01
手把手教你用Python的NumPy包处理数据
2019-03-01
TIOBE 12月编程语言排行榜:Python有望第四次成为年度语言
2019-03-01
Python循环语句代码逐行详解:while、for、break和continue
2019-03-01
如何让图表更有说服力?6大准则和1个经典案例给你讲明白
2019-03-01