zoukankan      html  css  js  c++  java
  • Kotlin------函数和代码注释

    定义函数

    Kotlin定义一个函数的风格大致如下

    访问控制符 fun 方法名(参数,参数,参数) : 返回值类型{
        ...
        ...
    }
    • 访问控制符:与Java有点差异,Kotlin的访问范围从大到小分别是public、internal、protected、private,不声明默认是public;
    • 返回值类型:不需要返回类型的函数,后面的 : 返回值类型可以缺省(这里可以看到无论是变量还是方法,Kotlin都喜欢名字在前,类型在后);
    /***Kotlin版代码***/
    //有返回参数的函数
    fun getName(): String {
        return "Kotlin"
    }
    //无返回参数的函数
    fun displayName(name: String) {
        println("name: $name")
    }
    /***Java版代码***/
    public String getName() {
        return "Java";
    }
    public void displayName(String name) {
        System.out.println("name: " + name);
    }

    相比Java,Kotlin支持包级函数,即函数不依赖于类而存在。

    /***Kotlin版代码***/
    package lesson1
    /**
     * Created by Clock on 2017/6/18.
     */
    fun main(args: Array<String>) {
        println("Kotlin")
    }
    /***Java版代码***/
    package lesson1;
    /**
     * Created by Clock on 2017/6/18.
     */
    public class Lesson1 {
        public static void main(String[] args) {
            System.out.println("Java");
        }
    }

    对比上面的代码,Java创建一个方法前还需要先创建一个类。刚开始安装IntelliJ IDEA编写代码时,我还有个疑惑,为什么有创建Kotlin File/Class两个选择,到这里就明白了。

    参数变长

    Kotlin的参数变长非常简单,传递的参数使用关键字vararg标明即可

    /***Kotlin版代码***/
    //参数变长
    fun displayActors(vararg name: String) {
        println("actors: " + name);
    }
    /***Java版代码***/
    public void displayActors(String... name) {
        System.out.println("actors :" + name);
    }

    相比Java,变长参数在Kotlin代码中要常见很多。
    静态变量和函数

    Kotlin没有Java中的static概念,如果在Kotlin中需要像Java一样定义静态变量和函数可以使用companion object,companion object后可以加上自定义的object名,也可以省略。

    /***Kotlin版代码***/
    class KotlinStatic {
        companion object Test {
            var kotlinInt: Int = 0
            fun getInstance(): KotlinStatic {
                return KotlinStatic()
            }
        }
    }
    /***Java版代码***/
    public class Lesson1 {
        public static int javaInt = 0;
        public static Lesson1 getInstance() {
            return new Lesson1();
        }
    }

    这样在需要使用的地方就可以做如下调用了

        
    package lesson0
    import lesson1.KotlinStatic
    /**
     * Created by Clock on 2017/6/17.
     */
    fun main(args: Array<String>) {
        println("Hello, world!")
        KotlinStatic.kotlinInt
        KotlinStatic.getInstance()
    }

    虽然看起来companion object实现了类似Java中static一样的功能,但与Java不同的是,Kotlin在运行时是会创建一个companion object实例对象。在Kotlin中,如果真的想要实现和Java中的static变量或函数,官方更推荐使用包级别的变量或函数来实现。

    返回 Unit 的函数

    如果一个函数不返回任何有用的值,它的返回类型是 Unit 。 Unit 是一种只有一个值 —— Unit 的类型。这个值不需要显式返回

    fun printHello(name: String?): Unit {
        if (name != null)
            println("Hello ${name}")
        else
            println("Hi there!")
        // `return Unit` 或者 `return` 是可选的
    }

    Unit 返回类型声明也是可选的。上面的代码等同于

    fun printHello(name: String?) {
        ……
    }

    代码注释

    正如 Java 和 JavaScript,Kotlin 支持行注释及块注释。

    // 这是一个行注释
    
    /* 这是一个多行的
       块注释。 */

    与 Java 不同的是,Kotlin 的块注释可以嵌套。就是说,你可以这样注释:
    /**
     * hhhh
     * /**
     *  fff
     *  /**
     *    ggggg
     *  */
     * */
     *
     * abc
     *
     */
     
  • 相关阅读:
    数据结构之队列java版
    SPSS-相关性和回归分析(一元线性方程)案例解析(转)
    SPSS-非参数检验—两独立样本检验 案例解析(转)
    spss-非参数检验-K多个独立样本检验( Kruskal-Wallis检验)案例解析(转)
    SPSS-Friedman 秩和检验-非参数检验-K个相关样本检验 案例解析(转)
    SPSS-多重响应-频率和交叉表案例分析(问卷调查分析)(转)
    SPSS—回归—多元线性回归(转)
    SPSS—回归—曲线估计方程案例解析(转)
    SPSS—非线性回归(模型表达式)案例解析(转)
    SPSS—二元Logistic回归(转)
  • 原文地址:https://www.cnblogs.com/zhangqie/p/7455540.html
Copyright © 2011-2022 走看看