Kotlin学习笔记(1)---变量与函数

    技术2025-03-01  34

    Kotlin学习笔记(1)—变量与函数

    . .

    前言

    作为一个安卓开发者,如果在2020年还没有学会Kotlin的话,就代表已经OUT了。没错本人已经OUT了,所以趁这段时间有空,赶紧学习一下这门GOOGLE推荐的安卓开发语言。 作为一个开发者,Kotlin作为一个新语言,最大的优势就是100%与java兼容。Kotlin可以直接调用java编写的代码,也可以无缝使用java的第三方开源库。这样一来,就是的Kotlin不仅拥有属于自己的特色,而且还继承的java的财富。本系列文章全部会类比java来学习。关于Kotlin就介绍到这里,下面我们进入正题。 . . .

    1.变量

    在java中,变量都有自己的数据类型。int,String,char等等。但在Kotlin中,只允许在变量前声明两种类型

    val(value的缩写)代表了不可变的变量,这种变量在初始赋值之后,就不能再重新赋值了。与java中被final关键字修饰的变量相同。var(variable的缩写)代表了可变的变量,与java中不被final关键字修饰的变量相同。

    这里熟悉java的人会有疑惑,如果我们只用这两种类型来修饰变量,那编译器怎么判断变量的类型呢?这里就体现出Kotlin的 一个重要特色就是类推导机制 。举个例子:

    我们在idea中新建一个kotlin文件,然后编写如下代码:

    package Test fun main() { val a = 10 println(a) }

    效果如下:

    下面我们看看var变量:

    package Test fun main() { var a = 10 a=a+3 println(a) }

    下过如下: 但这种类推导机制并不会总是正常工作,比如我们只声明了一个变量,在特定情况下才会给它赋值的话,Kotlin就无法自动推导出它的类型了,这就需要我们对变量的类型进行显示的申明,语法如下:

    var a:Int = 10;

    需要注意的是,这个Int的I是大写的,而java中int的i是小写的。虽然只有一个字母的差距,但在Koltlin中,完全抛弃了java中的基本数据类型,全部使用了对象数据类型。在java中int是个关键字,而在Kotlin中,Int是一个类,它拥有自己的方法和继承结构。java中每种基本数据类型在Kotlin中都有对应的对象数据类型。

    java基本数据类型与Kotlin对象数据类型对照表 java基本数据类型Kotlin对象数据类型intIntlongLongshortShortfloatFloatdoubleDoublebooleanBooleancharCharbyteByte

    我们试试如果非要给被val修饰的变量再次赋值会怎么样:

    fun main() { val a:Int = 10 a=a+3 println(a) }

    name编译器就会提示我们:

    2.函数

    在java中我们称之为方法,而在Kotlin中我们更多的称呼它为函数 首先我们先看一个最简单的函数,一个用来比较大小的函数:

    fun getMin(num1: Int,num2: Int):Int{ var value = 0 if (num1>num2){ value = num2 }else{ value = num1 } return value }

    首先要有fun关键字,用来标识函数。fun关键字之后就是函数名了,这里函数起名是可以根据我们喜好来进行的但更好的是遵循命名规范,并且能让我们在看到函数名的时候就能知道这个函数是用来干嘛的。 括号内是函数的入参,以 变量名:变量类型 的形式,用逗号进行分隔。冒号后边的是这个函数的返回值的类型,如果是空返回值(对用java中的void),则可以不写。最后大括号中的就是函数体了,函数的具体逻辑就写在括号内。 当然了,我们可以将上面的方法使用现成的库函数来实现:

    fun getMin(num1: Int,num2: Int):Int{ return min(num1,num2) } fun main() { val a = getMin(2,3) println("The small number is "+a) }

    我们来运行一下: 最后,是一个Kotlin的一个语法糖。当我们的函数体只有一行或者与只有一行具有同样的效果的时候(我个人理解为只做了一个步骤)时,Kotlin允许我们不写函数体,可以将唯一一行代码写在函数定义的尾部,中间以等号连接即可。等号也代表了返回的意思。于是我们刚才的getMin方法就可以简写为:

    fun getMin(num1: Int,num2: Int):Int = min(num1,num2)

    而根据我们之前提到的类推导机制,min方法返回值肯定是Int类型,所以我们可以将函数的返回值类型进行省略,即:

    fun getMin(num1: Int,num2: Int) = min(num1,num2)

    这样一来,我们的getMin方法就变得异常简洁。 这一节的内容就到这里,下一节我们看看Kotlin中逻辑控制语句的用法。

    Processed: 0.014, SQL: 9