变量和不可变量
在kotlin中我们在声明一个变量的时候,采用var作为修饰符来修饰一个变量,而采用val修饰符来修饰一个不可变量。这里需要注意一点,这是val是被定义为一个叫做不可变量,而不是一个常量,这两者是有区别的。可以把被val修饰的变量比作在Java中的final,这样理解起来会好一些。
var number : Int = 20;val str : String = "hello world";
我们可以看到,在kotlin中变量和不可变量的书写方式和Java是不同的,在Java中一般变量类型是写在变量名称的前面,但是kotlin中变量类型却是写在了名称的后面,并且中间使用冒号隔开,之后再用等号来进行赋值操作。
这里插播一个题外话,我们在做Java开发的时候都知道,每条语句在结束的时候都必须用分号;作为结束,不然程序会报错,但是在Kotlin中却没有这个概念,你可以写分号也可以不写,程序一样可以运行通过。但是为了书写的统一考虑,个人建议还是在结尾和Java一样写上分号
这里需要注意一点,由于kotlin非常的智能,如果你的变量类型是可以被程序推断出来的,其实变量的类型不写也没有关系。例如上面的number被赋值为20,由于这个20是可以被推断出来是一个Int类型,而"hello world"也可以被推断出来是一个String类型,所以这两个又可以写成如下:
var number = 20;val str = "hello world";
程序不会报任何的错误。这是kotlin智能的地方之一。
非空判断
我们在编写Java代码的时候常常会因为空指针而导致程序奔溃,这是让很多Java开发者头疼的问题,但是在kotlin语言中这个问题就得到了很好的处理。在kotlin中,有空安全的概念,只要在变量后面用问号"?"进行修饰,那么这个变量就被声明为可以为空的变量,如果不用?去修饰,那么程序默认其不能为空,一旦他为空,编辑器在还没编译运行的时候就会报错,导致编译不通过,而不用再程序奔溃的时候才被发现。
var str : String = null;
如果按照上面这么写,程序就会抛出异常,因为str是一个不能为空的变量。如果想要他为空,则可以改成
var str : String? = null;
这样就可以确保他可以为空,不抛出异常了。
函数
在kotlin中没有方法的概念,转而是叫做函数的概念。下面我们来声明一个函数,看看他是如何被声明的。
fun setMessage(str:String):String{ return str; }
我们可以看到,声明一个函数非常简单,只需要使用fun来修饰,后面跟函数的名称,括号中是函数的参数,这里注意,参数的写法和之前声明变量的写法是一致的,都是" 变量名 :类型 "这种声明方式。
在Kotlin中函数不像在Java中的方法一样必须写在类里面,Kotlin中的函数是可以不用在类中写的。你完全可以不用写class,而直接上来就写一个函数也没有问题。这也使得Kotlin代码的编写显得十分简单
如果函数有返回值,则用冒号加上返回值类型来处理,如果没有则可以不写,例如:
class KotDemo{ }fun setMessage(str:String){ println(this is $str) }
这里我们在变量参数str前面用了一个美元符号$来修饰,那么这个美元符号的作用是什么?
其实很简单,这个是Kotlin中的一个特殊符号,他用来修饰变量,这样在字符串中就可以直接输出这个类型的变量了。而在Java中一般变量和一串字符都是需要使用 " + " 来拼接,例如:
//Java中语法System.out.println("this is " + str);
而Kotlin中由于有了$这个特殊符号,省去了Java中麻烦的加号拼接方式,使得语法上更加简洁明了。
以上为kotlin重必须要掌握的基础语法。
如果觉得我的文章能够帮助到你,也欢迎关注我的微信公众号「晨雨细曲」,有新技术和知识会推送在这上面。
共同学习,写下你的评论
评论加载中...
作者其他优质文章