Kotlin基础特性深刻讲解

继续学习基础语法,在上次http://www.javashuo.com/article/p-mfilwwuf-hg.html中定义了一个两数相加的函数,以下:html

其实对于这个函数还能够进一步简写,由于函数体就一句话,以下:web

那若是函数不返回值呢,看下面的例子:安全

其实Unit是能够省略掉的,IDE中也已经将它标灰了,以下:函数

那,这个Unit是干吗用的呢?以后再学习,先无论这个细节。若是说想输出“a+b=5”这个形式的字串那该怎么来弄呢,叫Java的风格应该是这么写的:学习

但在Kotlin中能够采用“字符串模板”来实现,以下:spa

包名:3d

咱们知道在Java中的包名是跟碰盘上的文件目录名是彻底匹配的,可是在Kotlin中不是这样的,它的package是一种逻辑上的,不须要跟磁盘上的目录同样,好比说目前我们的包名是:指针

变量【val】及常量【var】: htm

首先来定义一个常量:blog

这就定义了一个int类型的常量a,若是对它进行赋值确定就会报错了:

或者能够一般类型推断机制来更精简的声明一个常量,以下:

对于集合常量其实跟Java同样,是常量地址不能变,可是里面的元素是能够变的,以下:

 

接着再来定义一个变量:

 

注释:

跟Java的注释相似,可是跟Java有一个区别就是注释里面能够进行嵌套的,以下:

Byte赋值给Int:

在Java中一个byte是能够赋值给int的,可是在Kotlin是绝对不容许小范围的类型赋值给大范围的类型,在Kotlin中要求赋值的类型必须如出一辙,好比:

要如何解决这个错误呢,就是手动转一下既可,以下:

引用其它包的文件:

对于Java来讲若是一个类想引用另外一个包名的类则须要使用import将包名导进来,而在Kotlin中其实相似,不过有它独特的地方,下面来演示一下,先新建一个计算类,呆会会被其它包中的函数都调用的,以下:

接下来我们要在HelloKotlin2中来使用它,也得使用import,以下:

另外还有一种取别名的方式,以下:

流程控制:

其实还能够更加简单,也是Koltin独有的:

那若是条件语句中可能有多行,那还能用上面的这种方式么?固然是能够的,最终结果就是语句最后一行写的值,具体以下:

字符串转换成整数,体现Kotlin安全性:

将字符串转换成整数在实际工做中是很是常见的需求,有可能字符串并不是是纯数字,因此可能会转换失败,另外也有可能会发生空指针异常,下面来看一下Kotlin针对这种场景的处理有啥优点,以下:

此时若是要想让程序不报错,须要在返回值上加上它:

好,接下来调用一下:

接下来再编写一个相乘的函数:

接下来再来一个新函数,须要说明一个问题:

调用并运行:

好,一切都很好理解,可是!!若是这样直接写就会报错了:

说明啥?说明对于一个可能为null的值不作判空直接使用在Kotlin中是在编译期间就给出异常提示从而在运行时能够规避空指针的问题,那为啥下面这样写就不报错呢?

这是由于执行到这句话,Kotlin能知道atInt和b2Int必定是整数不可能为null,因此能够直接这样写了,从这个细节就能够看到Kotlin这门语言确实是比Java在细节上要聪明的多,极大的能够减小在运行期间抛出的异常, 因此学好它真的是挺有必要的。

相关文章
相关标签/搜索