初探Kotlin(二)

作者: YoungerDev | 来源:发表于2017-10-07 15:34 被阅读28次

    Hello World

    先来一个Kotlin 中的Hello world
    fun main(args: Array<String>){
    println("Hello World")
    }

    • 关键字fun 用来声明一个函数;
    • 参数的类型写在它的名称后面;
    • 函数可以定义在文件的最外层,不需要把它放在类中;
    • 数组就是类,和Java不同,Kotlin没有声明数组类型的特殊语法;
    • 使用println替代了System.out.println Kotlin标准库给Java标准库函数提供了许多语法更简洁的包装;
    • 和许多其他现代语言一样,可以省略每行代码的结尾的分好;

    函数

    fun max(a: Int, b: Int): Int {
    return if(a>b) a else b
    }
    函数的声明以关键字fun 开始,后面是函数名 ,括号中是参数列表,再后面的是返回值得类型,他们之间用: 分隔.
    在Kotlin中 if 是表达式,而不是语句. 语句和表达式的区别是: 表达式有值,并且可以作为另一个表达式的一部分使用; 而语句总是包围着它的代码块中的顶层元素. 在Java 中所有的控制结构都是语句;而在Kotlin中 除了循环(for,do,do/while)以为大多数控制结构都是表达式

    变量

    • val (value) 不可变引用. 使用val 声明的变量不能再初始化之后再次赋值,对应Java 中的final 变量.
    • var (variable) 可变引用. 这种变量的值可以被改变.这种声明对应的是普通的(非final )的Java变量.

    默认情况下,应该尽量使用val 关键字来声明所有的Kotlin变量,仅在必要的时候换成var. 使用不可变引用,不可变对象及无副作用的函数让你的代码更加接近函数式编程风格.

    更简单的字符串格式化:字符串模板

    fun main(args : Array<String>){
    val name = if(args.size>0) args[0] else "Kotlin"
    println("Hello, $name!")
    }

    $还可以引用更加复杂的表达式.只需把表达式用花括号括起来:
    fun main(args : Array<String>){
    if(args.size>0){
    println("Hello, ${args[0]}!")
    }
    }
    还可以在双引号中直接嵌套双引号,在要他们处在某个表达式的范围内(花括号内):
    fun main(args : Array<String>){
    println("Hello, ${if (args.size > 0 ) args[0] else "SomeOne"}!")
    }

    类和属性

    class Person(val name: String)
    替代了 Java 中的
    public class Person{
    private final String name;
    setter getter 方法
    }
    Kotlin 中public 默认可见的,可以省略.

    枚举和"when"

    enum class Color{
    RED,ORANGE,YELLOW,GREEN,BLUE
    }
    也可以这样
    enum class Color(val r: Int ,val g: Int ,val b: Int){
    RED(255,0,0),ORANGE(255,165,0),YELLOW(255,255,0),
    GREEN(0,255,0),BLUE(0,0,255);
    //定义方法
    fun rgb() = (r256+g)256+b
    }

    ->>> println(Color.BLUE.rgb())
    255

    小结

    • fun 关键字用来声明函数,val 关键字和 var 关键字分别用来声明只读变量和可变变量;
    • 字符串模板帮助你避免繁琐的字符串链接,在变量名称前加上$ 前缀或者用$ { } 包围一个表达式,来吧值注入到字符串中;
    • 值对象类在Kotlin 中以简洁的方式表示;
    • 熟悉的if现在是带返回值的表达式;
    • when 表达式类似于Java 中的switch 但功能更加强大;
    • 在检查过变量具有某种类型后不必显式地转换它的类型;编译器使用智能转换自动帮你完成;
    • for,while和do-while 循环与Java类似,但是for 循环现在更加方便,特别是需要迭代map的时候,又或是迭代集合需要下标的时候;
    • 简洁的语法 1..5 会创建一个区间.区间和数列允许Kotlin 在for循环中使用统一的语法和同一套抽象机制,并且可以使用 in 运算符和 !in 运算符来检查值是否在属于某个区间;
    • Kotlin 中的异常处理和Java 非常类似,除了Kotlin 不要求声明函数可以抛出的异常;

    相关文章

      网友评论

        本文标题:初探Kotlin(二)

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