Featured image of post Kotlin学习笔记-2

Kotlin学习笔记-2

kotlin基础函数定义与变量传递

基础函数定义

kotlin一般定义函数的方法如下

/*定义一个公有函数为f1,第一个传入数据定义为v1,
v1是String类型,函数返回字符串所以填写String类型*/
public fun f1(v1: String): String{
    // 返回v1加字符串" World!"
    return "$v1 World!"
}

这其中有一点十分有趣,kotlin支持在字符串中直接$变量名,前提是后面没有紧跟着的字符,不然就需要使用${变量名}来解决

那没有返回的函数呢?如何填写类型?

这就引出了Kotlin的特殊类型Unit,它可以在没有输出的情况下依然使函数返回一个对象

// 将返回类型换成Unit,可以省略": Unit"不写,编译器看得懂
public fun f1(v1: String): Unit{
    // 打印v1加字符串" World!"
    println("$v1 World!")
    // 返回Unit,这句话也可以省略不写,编译器也看得懂
    return Unit
}

请注意!第一个Unit指代的是返回类型,而第二个Unit则是一个具体对象,虽然同名,但绝不一样

同样,我们也可以定义私有函数:

// 定义一个私有函数为f2,传入字符串定义为v2,函数返回String类型
private fun f1(v1: String): String{
    // 返回v1加字符串" World!"
    return "$v1 World!"
}

在继承方式中,可以直接忽略public不写,这样子我们就能获得两个等价的表达

传递变量

变量的传递十分简单,只需要在调用时传入即可

// 程序入口点
fun main(){
    val a = "1"
    val b = "2"
    val c = "3"
    // 将变量a,b,c导入函数push2,再打印返回的字符串
    println(push2(a,b,c))
}

// 定义一个公有函数push2,传入字符串定义为x,y,z
fun push2(x: String,y: String,z: String): String{
    // 返回字符串
    return "倒数${z+y+x}"
}

运行的结果就是

倒数321

来尝试一次吧!

让我们写一个完整的一段代码

// 声明所属包
package tenshi.first.demo

// 定义编译时常量v
const val v = "Hello"

// 程序入口点
fun main(){
    // 将变量v导入函数hello
    hello(v)
}

// 定义一个公有函数hello,传入字符串定义为v1
fun hello(v1: String){
    // 打印v1加字符串" World!"
    println("$v1 World!")
}

输出结果就是喜闻乐见的

Hello World!