一、Kotlin语言的函数头学习
例如:
private:修饰符,默认是public
fun:函数声明关键字
method01:函数名
age : Int,name : String :函数参数
Int:返回类型
private fun method01(age : Int,name : String) : Int {
println("你的姓名是:$name,你的年龄是:$age")
return 200
}
//函数默认都是public
//其实Kotlin的函数,更规范,先有输入,再有输出
private fun method01(age : Int,age : String) : Int{
println("你的姓名是:&name,你的年龄是:$age")
}
/*
上面的Kt函数,背后会变成下面的Java代码
private static final int method1(int age,String name){
String var2 = "你的姓名是:"+ name + ",你的年龄是:"+ age;
System.out.println(var2);
return 200;
}
*/
二、Kotlin中函数参数的默认参数
fun main() {
action01("lisi",89)
action02("wangwu")
action03()
action03("赵六",76)
}
private fun action01(name : String,age : Int){
println("我的姓名是:$name,我的年龄是:$age")
}
private fun action01(name : String,age : Int = 77){
println("我的姓名是:$name,我的年龄是:$age")
}
private fun action01(name : String,age = "王五" : Int = 23){
println("我的姓名是:$name,我的年龄是:$age")
}
三、Kotlin语言的具名函数参数
更加灵活
fun main() {
loginAction(age = 99,userpwd = "123",username = "Derry",phonenumber = "123456")
}
private fun loginAction(username: String,userpwd: STring,phonenumber: String,age: Int){
println("username:$username,userpwd:$userpwd,phonenumber:$phonenumber,age:$age")
}
四、Kotlin语言的Unit函数特点
fun main() {
}
//Java语言的void关键字(void是无参数返回的 忽略类型),但是他是关键字,不是类型,这很矛盾
//:Unit不写,默认也有,Unit代表,无参数返回的 忽略类型 == Unit类型类
private fun doWork() : Unit {
return println()
}
private fun doWork2() {
return println()
}
private fun doWork3() {
println()
}
//上面三个结果一样
五、Kotlin语言的Nothing类型特点
fun main() {
show(-1)
}
private fun show(number: Int) {
when(number) {
-1 -> TODO("没有这种分数") //返回一个Nothing结果终止程序
in 0..59 -> println("分数不及格")
in 60..70 -> println("分数及格")
in 71..100 -> println("分数优秀")
}
}
interface A { //一个接口A,定义一个show方法
fun show()
}
class AImpl : A { //一个接口A的实现类
override fun show() {
//下面这句话,不是注释提示,会终止程序的
TODO("not implemented")
}
}
六、Kotlin语言的反引号中函数名特点
fun main() {
//第一种情况:
`登录功能 2022年11月`("LN","13579")
//第二种情况:和java互调出现的问题(in和is在java里面是普通的函数名,在kotlin里是关键字)
KtBase21.`is`() //调用KtBase21java类的is函数
KtBase21.`in`()
//第三种情况:很少发生
`878799`()
}
private fun `登录功能 2022年11月`(name: String,pwd: String){
println("模拟:用户名是$name,密码是$pwd")
}
private fun `878799`() {
//写了很复杂的功能,核心功能
// ...
}
//公司加密私有文档 878799 === 此函数的作用(每一个数字对应一个功能)