DAY12 Kotlin基础 函式

欸!?这个不是在 hello world 的时候讲过了ㄇ?!

对。

其实函式还是有其他东西可以讲解的,程序就是很多function去组合起来,把function搞清楚了,第一份工作肯定会超过一个月。赞。


函式 Function

有人说 function 在一些程序语言中是一等公民( first class citizen ),一等公民听起来好像很霸道很高级,但一开始听到一等公民这个词我也是塞爆了问号,後来翻阅网路跟书籍後,才稍微了解, 简单来说,一等公民可以做为函数的引数,可以最为函是返回值,也可以赋值给变数。

不过今天呢,我也是打算从最一开始讲起,因为我还不会甚麽太艰深的东西。

欸嘿。


函式还是函数?

应该都可以啦,但我都叫他 function。

你可以将一个或是多个表达式归入封装成一个 function ,你可以在需要那个程序的想法与逻辑的时候去调用那个 function ,你就不用每次都要打类似的程序码啦。

建立一个 function 先用 fun 去宣告,後面接 function 名字,定义传入参数的型别(如果有的话),跟定义他回传的输出型别,大括号里就是放你要写的程序码。

fun generateAnswerString(): String {
    val answerString = if(count == 42){
        "宾果答对了!是42!"
    }else{
        "不对欸不对欸"
    }
    return answerString 
}

上面的function name 是 generateAnswerString。这个 function 不接受传入参数,输出的结果是 String 的型别。 那要调用这个 function 的话要输入以下程序:

generateAnswerString()

那要让函数可以接受输入参数,可以这样打:

fun generateAnswerString(countThreshold: Int): String {
    val answerString = if(count == countThreshold){
        "宾果答对了!是42!"
    }else{
        "不对欸不对欸"
    }
    return answerString 
}

上面的范例中,generateAnswerString( ) 接受一个叫做 countThreshold 的 Int 类型的参数,在 generateAnswerString 这个 function 里面利用参数的名称来去使用。

要调用这个 function 的话,就必须在() 中添加一个数值。

val answerString = generateAnswerString(42)

这样就可以啦。


简化函式

上面范例的 generateAnswerString() 是一个简单的函数,在程序中是先宣告一个 answerString 再将後面 if-else 产生的结果存入 answerString 里面,最後再回传 answerString。

那不如我们直接回传 if-else 产生的结果!

fun generateAnswerString(countThreshold: Int): String {
    return if(count == countThreshold){
        "宾果答对了!是42!"
    }else{
        "不对欸不对欸"
    }

又更简洁了。

也是可以把 return 替换成 "=" :

 fun generateAnswerString(countThreshold: Int): String = if(count == countThreshold){
        "宾果答对了!是42!"
    }else{
        "不对欸不对欸"
    }

基础的函式就先到这边,

下一篇见写写打家打家摆掰。


<<:  Day12-旧网站重写成Vue_3_单一图片轮播

>>:  Day27 javascript HTML DOM简单介绍

[Day23] Tableau 轻松学 - TabPy 安装与连线

前言 对 TabPy 有一定程度的认识之後,便能开始学习 TabPy 安装与使用,这篇文章会分享如何...

Day12:Select Room(选择特定房间频道)

全文同步於个人 Docusaurus Blog 本章的需求,解决首页进入前,如果有特定频道可以选择...

【Day 19】Shellcode 与他的快乐夥伴 (下) - Shellcode Loader

环境 Windows 10 21H1 Visual Studio 2019 前情提要 在上一篇【Da...

#5 Types of CSS Selector

After the previous 2 articles of CSS basic introdu...

k8s - 洗掉 kubernetes 环境重新来过

k8s - 洗掉 kubernetes 环境重新来过 参考资料 参考资料:在 Ubuntu 上重新安...