美文网首页Kotlin从入门到放弃Kotlin官方文档Kotlin专题
【Kotlin学习日记】Day3:语法糖_2_Sample_1

【Kotlin学习日记】Day3:语法糖_2_Sample_1

作者: William李梓峰 | 来源:发表于2017-06-17 14:51 被阅读144次

    大家好,欢迎加入小李君的Kotlin学习之旅。今天是小李君学习Kotlin的第三天,本文将复习Kotlin语法糖的Basic Syntax,加深印象。本文分为Sample_1和Sample_2两篇,本篇为Sample_1。

    昨日回顾:

    • 访问官网https://kotlinlang.org
    • 点击learn,看Reference文档
    • 快速看完Overview经文,仔细研读Getting Started - Basic Syntax

    今日内容:

    第一步:

    1. 访问官网https://try.kotlinlang.org
    2. 打开你的JetBrain IDEA
    3. 千万不要复制粘贴官网例程到你的IDEA,欲速则不达。

    第二步:

    练习Hello World例程

    Simplest version.kt

    Paste_Image.png

    注释翻译:
    我们声明了一个包级的主函数,这个函数返回了Unit,而且还以一个字符串数组作为形参。提示,分号是可选的,写不写没关系。

    例程解释:
    main(),主函数,打印了hello world字符串。

    特别注意:
    再次强调,分号是可选,而且不要纠结注释中提及的Unit是什么。

    Reading a name from the command line.kt

    Paste_Image.png

    注释翻译:
    第18行(原13行,被我的翻译挤下去了)的代码演示了如何使用字符串模板和数组访问。想看更多的细节请访问以下地址:

    例程解释:
    main(),主函数,先判断args字符串数组空间是否为0,若是,则打印提示信息并退出主函数,否则,使用字符串模板,注入args[0],打印信息。

    特别注意:
    字符串模板技术可以追溯到Linux命令的展开技术(shell expansion)。

    字符串模板那些往事儿如下:

    Reading many names from the command line.kt

    Paste_Image.png

    注释翻译:
    第12-13行演示了一个增强版的for循环体,其实就是foreach。如果想看其他for循环体请看:

    例程解释:
    main(),主函数,for循环打印args数组的所有元素。

    特别注意:
    name没有类型声明,也没有val或var修饰。

    A multi-language Hello.kt

    Paste_Image.png

    注释翻译:
    在这里例子里边,‘val’意味着一个只读局部变量的声明,其实就是常量
    这个常量被赋值了一个字符串,如EN
    这个字符串通过when表达式的匹配,得出对应的字符串,如Hello!
    欲查看when表达式,请看:

    例程解释:
    main(),主函数,先判断args数组空间是否为0,若是,则赋值0到常量language,否则,获取args数组第一位元素并赋值到language。通过when表达式字符串匹配与language对应的字符串,并打印出来,如language=FR,则打印Salut。

    特别注意:
    这个例程出现了两个表达式,if表达式,when表达式。
    if表达式如同三目运算符,when表达式如同switch case。

    An object-oriented Hello.kt

    Paste_Image.png

    注释翻译:
    这里我们写了一个类,这个类自带一个构造函数(对象的构造器)以及一个成员函数(对象的方法)。提示,kotlin根本不需要new一个对象,而是类似简单工厂方法那样直接调用方法(构造器)获得新的对象。
    想了解更多类的知识请看:

    例程解释:
    class Greeter,Greeter类,有一个字段name和一个方法greet(),greet()方法打印Hello, ${name}。
    main(),主函数,new一个Greeter类的对象,其构造器传入args[0],并调用方法greet()。

    特别注意:
    小李君学习Kotlin以来,第一次遇到Kotlin class。小李君认为这个class的机制与Javascript的ES5以前的function类机制很像,类体本身就是构造器,这种语法实在非常简练,小李君非常喜欢。

    交作业啦

    这是小李君为这次sample学习而写的代码,github地址如下:

    还是那句话,不要复制粘贴人家官网例程的代码,而是自己对着这些代码一步步敲出属于自己的代码。
    还有 Sample_2,一会儿更。

    相关文章

      网友评论

      本文标题:【Kotlin学习日记】Day3:语法糖_2_Sample_1

      本文链接:https://www.haomeiwen.com/subject/gwpvqxtx.html