在期待着郭霖先生的《第一行代码(第三版)》时,意识到自己需要补充必要的Kotlin知识。现在写文章分享自己学习Kotlin基础知识的过程,争取拿到书之后能早日上手。
使用的软件是IDEA 2019,文章中如有错误或者欠缺的地方,欢迎批评指正。
(参考《Kotlin从零到精通Android开发》,欧阳燊著,清华大学出版社2018年4月第一版,ISBN 978-7-302-49814-8)。感谢欧阳先生的优秀教材。
文章来源于 我的简书。
1、如何声明函数
Kotlin声明函数的基本模式是(例如声明返回值为Int类型的函数print,函数没有参数):
fun print():Int {
println("SSSS.GRIDMAN")
}
所以基本的模式是:fun 函数名(参数列表):返回值类型 {
//操作
}
函数名采用小驼峰命名法
如果函数没有返回值类型,则可以省略返回值类型声明,或者用下面的格式:
fun print():Unit {
}
这样的做法是为了符合基本的函数声明的模式。
2、给定函数的参数、默认参数
例如,需要实现一个函数,实现两个数的加法并输出结果。
根据之前介绍的变量声明和Java语言中的函数的写法,我们可以得到Kotlin代码如下:
默认参数的办法和Java中是类似的,如下:
但是这样可能会造成一些问题,例如会与没有参数的函数混淆,例如:
所以,最好只是对某几个参数使用默认值,并且,这种情况下不能出现前面的参数使用默认值,而后面的参数使用给定的值的情况。例如上面的例子中,如果将main函数中的语句getAnswer(3),这个3会被作为x的参数。
当然,这个问题是有解决的办法,那就是命名参数。
3、命名参数
在Python中,我们常常见到这样的写法:
wnd = tkinter.Tk(title="tkinter窗体")
Kotlin中也有类似的写法,这是很明白的:我们通过参数名=值的办法,就能让编译器知道我们要给哪一个参数指定值,哪些参数使用默认值。
例如将上面的程序改为:
可以知道,main函数调用了使用默认参数的getAnswer()方法并指定了y的值为4。
4、可变参数
可变参数可以随时增加参数的个数。欧阳先生的书上讲的比较浅显:中国古代有4大发明,可是有些人觉得应该有七大、十大发明,不仅仅局限于“四大”,幸运的是Kotlin提供了可变参数类型,可以随时增加参数的个数。
Kotlin在处理可变参数时,会把它作为一个数组来处理,我们需要通过循环来取出其中的值。
声明可变参数的一般格式(例如声明String?类型的可变参数)
vararg args:String?
请看下面的例子:
这里通过循环打印了参数的值。可以看到,第一次调用只有一个字符串,第二次调用,打印了四个字符串。这样有时候很有用(原谅我,我暂时还没有看出来哪里有用,觉得挺麻烦的,参数固定不就好了吗,怕记不清。不过,知道有这种方法就可以了。)