3、函数

这一期的视频主要内容是Kotlin中的函数
我们从这一期开始需要用到源文件,在IDEA中新建一个Kotlin文件的步骤如下:

  1. 找到项目视图中的src文件夹
  2. 在src文件夹上右键->New->Kotlin File/Class
  3. 填写文件信息并确认

要运行Kotlin文件,文件中必须要有一个主函数:

fun main(args:Array<String>){
    
}

注意,Kotlin的所有函数都会返回一些东西(即使没有return语句),类似主函数这样的函数会返回一个type unit来代表没有值。type unit就是Kotlin认为的没有值,当一个函数返回type unit,那么就没必要写return

接下来是一个练习(必须要做,以后还会用到):

  1. Create a new Kotlin file.
  2. Copy and paste the main() function from Hello World into the file.
  3. Create a new function, dayOfWeek().
  4. In the body of the function, print "What day is it today?"
  5. Call dayOfWeek() from main().
  6. Run your program.

官方答案是:

fun main(args: Array<String>) {
   dayOfWeek()
}

fun dayOfWeek() {
   println("What day is it today?")
}

下面继续练习:
In the body of the dayOfWeek() function, answer the question by printing the current day of the week.

这里有一系列提示:

  1. You can use Java libraries (java.util) from Kotlin. For example, to get the day of the week:
  2. Calendar.getInstance().get(Calendar.DAY_OF_WEEK)
  3. Type in the code, then press Option + Enter in Mac, or Alt + Enter in Windows, over the red Calendar class to import the library.
  4. Use a when statement to print a string depending on the day. Sunday is the first day of the week.

官方答案是:

fun dayOfWeek() {
   println("What day is it today?")
   val day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK)
   println( when (day) {
      1 -> "Sunday"
      2 -> "Monday"
      3 -> "Tuesday"
      4 -> "Wednesday"
      5 -> "Thursday"
      6 -> "Friday"
      7 -> "Saturday"
      else -> "Time has stopped"
   })
}

接下来我们要学习的是命令行参数。
首先在IDEA中打开run->edit configuration,在program arguments中填入kotlin,之后确认
然后我们需要在程序中使用这个参数,将main函数修改如下:

fun main(args:Array<String>){
    println("我爱你~${args[0]}")

    val isUnit = println("This is an expression")
    println(isUnit)

    val temperature = 10
    val isHot = if(temperature>50) true else false
    println(isHot)

    val message = "You are ${if(temperature>50) "fried" else "safe"} fish"
    println(message)
}

上面的例子还说明了,在${}中可以使用表达式
那么再做一些练习题~
Create a main() function that takes an argument representing the time in 24-hour format (values between and including 0 -> 23).

In the main() function, check if the time is before midday (<12), then print "Good morning, Kotlin"; otherwise, print "Good night, Kotlin".
注意:
Remember that all main() function arguments are Strings, so you will have to convert this argument to an Int before you can apply the check.
高级一点:
Try to use Kotlin's string templates to do this in 1 line.

正确答案是(包含两种写法):

fun main(args:Array<String>){
    if (args[0].toInt()<12) println("Good morning Kotlin")
    else println("Good night Kotlin")

    // 一行表示
    println("Good ${if (args[0].toInt()<12) "morning" else "night"},Kotlin")
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,279评论 0 10
  • 每个女人心中都有一个自己勾画的专属王子,几乎就没有人找到一个完完全全的顺自己心意的先生,有的差那么一毫一厘,也...
    最初的遗忘阅读 204评论 0 0
  • 光胖子约小东出去旅游,然后他说,那个小智很少出门,没什么见识,一起带着吧。小东同意。三人一起抵达火车站,光胖子和小...
    成不熟阅读 161评论 0 0
  • 苍天问我志当何,敢教苍天竟无颜。 明月问我志当何,敢教明月照无眠。 我辈少年志凌云,扶风摇上九重天。 莫堕少年真豪...
    羽月阁阅读 228评论 0 1
  • 文/完美的补丁 (我、母亲和小外甥。) (外甥女母子) 今天不只是小朋友的节日,也是每一个老顽童的节日。 我们几代...
    完美的补丁阅读 600评论 0 6