zoukankan      html  css  js  c++  java
  • kotlin学习二:初步认识kotlin

    1. 函数

      kotlin中支持顶级函数(文件内直接定义函数),对比JAVA来说,JAVA的程序入口是main方法,kotlin也一样,入口为main函数

      首先看下kotlin中main函数的定义。

    fun main(args: Array<String>) {
        println("Hello, world!")
    }

    语法简介:

      fun是关键字,定义函数时使用的,参数args是参数名,冒号后跟参数类型,此处的参数类型为Array(kotlin内置类型)

      通过示例可以看出,kotlin也支持泛型。println()是kotlin内置的控制台打印函数

      这样就完成了main函数的定义,请自行和JAVA的main方法作对比,一个很明显的区别就是main可以直接定义在文件内

      成为顶级函数,不需要依托于类。

      另外从上面的例子中可以看出,kotlin的语句结尾是不需要分号的

    1.1 kotlin中定义和使用函数

      函数的常规定义方式:

    fun max(a: Int, b:Int): Int {
        return if(a > b) a else b
    }

    此处定义了一个比较两个参数大小的函数,返回大的值,函数定义没什么可说的,在函数的参数列表后跟了一个冒号 : Int,

    这个意思表示该函数返回一个Int类型的值

    同JAVA一样,if语句后就一行代码时可以省略大括号,另外在kotlin中没有三元运算符,所以此处用if else代替

    另外值得一提的是,和JAVA的if语句不一样,kotlin中的if是表达式。表达式会经过计算后产生一个结果值,而语句块不会

    这是一个很重要的区别,基于这种区别,我们还可以采用其他方式定义函数,下边你将会看到。

      函数的表达式定义形式:

    fun max(a: Int, b: Int): Int = if (a > b) a else b

    这里的函数和上边的函数定义实现一样的功能。但是写法不同,直接把if表达式赋值给了函数的返回值,这里

    正是利用了表达式会计算产生一个结果值的特性,才可以这样定义函数

      更进一步,省略函数返回值

    fun max(a: Int, b: Int) = if (a > b) a else b

    这个定义相比上一个更简介,它省略了函数的返回值定义,那么函数返回什么?会不会有返回值,如果有,又返回什么类型?

    首先函数会有返回值,而函数的返回值则取决于if表达式计算后产生的值,这里函数参数为两个Int类型,if表达式返回其中一个较大的

    很显然返回值还是Int,这些工作编译器已经帮你做了。

    2. 变量:

      2.1 类型的自动推断:

      kotlin中定义变量,使用valvar关键字,两者的区别稍后会说明,定义变量示例:

    val name = "test"
    val age = 27

      上边代码定义了两个变量,使用关键字val声明,没有指定类型,编译器会根据变量值自动推断类型,比如这里的name为String,age为Int

      如果你想代码更清晰,也可以显示指定类型:

    val name: String = "test"

      显示指定name为String类型

      上边我们说了定义变量有两种关键字分别为val和var,他们有什么区别?

      val定义的变量对应JAVA中final关键字定义的变量,第一次赋值后不允许改变该值。也就是说val定义的是不可变对象

      var定义的则是可变对象。允许后续赋值更改变量内容。

      那举个简单的例子,在javaBean中如果需要setter赋值的属性,很显然不应该使用val,因为后续调用setter赋值会报错

      而无需赋值,只涉及取值的getter属性,则可以定义成val

    3. 函数的调用

      知道了变量的声明和函数的定义,就可以调用函数了。

      依旧拿我们刚才定义的max函数来说,我要调用max得到两个数中较大的,只要在main函数中调用max即可

    fun main(args: Array<String>) {
        val maxNum = max(1,2)
        println(maxNum)
    }

    这样就可以了。

    4. 字符串模板

      在Java中,如果想在打印语句中打印某个变量的值,通常使用字符串拼接的方式,例如:System.out.println("hello " + name + " !");

      kotlin提供了字符串模板,可以使用更优雅的形式解决这类问题,同样的输出在kotlin中的写法:println("hello $name !")

      $符号即为字符串打印模板中的变量引用符号。直接在字符串中采用$+变量名即可引用变量,无需拼接

  • 相关阅读:
    Python 写Windows Service服务程序
    关于Python 获取windows信息收集
    Pyqt 获取windows系统中已安装软件列表
    Python 打开目录与指定文件
    【转载】Pyqt 编写的俄罗斯方块
    Python win32api提取exe图标icon
    Pyqt QListWidget之缩略图列表
    Pyqt 时时CPU使用情况
    Python 的三目运算
    Chrome Crx 插件下载
  • 原文地址:https://www.cnblogs.com/leemz-coding/p/7641157.html
Copyright © 2011-2022 走看看