持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情
人机交互
我们从键盘输入两个数字,然后打印它们的和
首先先得到从键盘输入的字符串
println("请输入第一个数字")
var num1Str = readLine()
println("请输入第二个数字")
var num2Str = readLine()
然后转数字
我们发现报错了,因为num1Str和num2Str都有可能为空,所以我们加上一个?
var num1 = num1Str?.toInt()
var num2 = num2Str?.toInt()
然后打印和
我们发现又报错了,因为num1 和 num2都有可能为空,null是不能相加的 所以我们修改之前的代码
var num1 = num1Str!!.toInt()
var num2 = num2Str!!.toInt()
来解释下?和!!的区别
?意思是这个参数,可以为空并且程序继续运行下去
!!的意思是这个参数如果为空,就抛出异常
看下结果
异常处理
刚才展示的是用户输入正常的情况下代码执行情况,如果用户输入的不是数字会出现以下情况
这就需要我们做异常处理了
try{
//之前的代码
}catch(e:Exception){
println("请输入数字哦")
}
可见性修饰符详解
Java中有public、private、protected和default (什么都不 写)这4种函数可见性修饰符。Kotlin 中也有4种,分别是public、private、 protected 和 internal,需要使用哪种修饰符时,直接定义在fun关键字的前面即可。下面详细介绍一下 Java和Kotlin中这些函数可见性修饰符的异同
首先private修饰符在两种语言中的作用是一模一样的, 都表示只对当前类内部可见
public修饰符的作用虽然也是一致的,表示对所有类都可见,但是在Kotlin中public修饰符 是默认项,而在Java中default才是默认项。前面我们定义了那么多的函数,都没有加任何的 修饰符,所以它们默认都是public的
protected关键字在Java中表示对当前类、子类和同一 包路径下的类可见,在Kotin中则表示只对当前类和子类可见
Kotlin抛弃了Java中的default 可见性(同一包路径下的类可见),引入了一种新的可见性概念,只对同一模块中的类可见,使 用的是internal修饰符。比如我们开发了一个模块给别人使用,但是有一些函数只允许在模块 内部调用,不想暴露给外部,就可以将这些函数声明成internal