可变参数展开操作符

Quibbler 5月前 249

可变参数展开操作符



1、Java方法传递多个参数

        使用Java定义的方法如果需要传递多个参数,可以用数组 [] : 

    public void requestPermissionWithArray(String[] permission) {
    
    }

        或者 ... 传递多个参数

    public void requestPermissions(String... permission) {
    
    }


        此时如果用数组作为参数:

    String[] strs = {"quibbler", "potter"};

        前面两个方法都可以调用接受这个数组类型的参数:

    requestPermissionWithArray(strs);
    
    requestPermissions(strs);



2、Kotlin方法传递多个参数

        Kotlin中也有支持多个参数的方法定义,用Kotlin重新实现上面两个方法:

        使用Array<*>替代Java中的 [] 数组:

    fun requestPermissionWithArray(strs: Array<String>) {
    
    }

         使用vararg表示可变长参数,替代Java中的 ...

    fun requestPermissions(vararg strs: String) {
    
    }


        此时,Kotlin中定义的数组

    val strs = arrayOf("quibbler", "potter")

        只能传递给第一个接受数组作为参数的方法:

    requestPermissionWithArray(strs)

        而不会像Java那样自动解开数组参数,需要用到可变参数展开操作符 * 解包数组:

    requestPermissions(*strs)



不忘初心的阿甘
最新回复 (0)
    • 安卓笔记本
      2
        登录 注册 QQ
返回
仅供学习交流,切勿用于商业用途。如有错误欢迎指出:fluent0418@gmail.com