可变参数展开操作符

QuibblerQuibbler 2024-02-23 约 3 分钟 1694 次阅读

可变参数展开操作符

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)

相关推荐

Parcelize:Parcelable 实现生成器
Kotlin

Parcelize:Parcelable 实现生成器

Parcelize:Parcelable 实现生成器Parcelable是安卓开发中常用的序列化方式,之前分享过一个Parcelable序列化插件,方便开发者快速生成代码,提高开发效率。1、Parcelize插件Kotlin官方也推出一个Parcelable自动生成的Gradle插件:Parcelize。1.1、引入插件在项目的build.gradle中添加:id("kotlin-parceliz

3.2k
Kotlin的继承
Kotlin

Kotlin的继承

Kotlin的继承1、超类:Any类似于Java中的Object类,Kotlin也有一个叫Any的超类,是所有类的父类,所有类都默认继承自该类。超类的定义如下,其中定义了三个函数:2、open注意上面的Any类用open修饰,表示该类可以被继承。Kotlin中的类默认都是final的,无法被继承:如果想让类可以被继承,就需要用在定义类的地方用open关键字标识该类可以被继承。3、构造器继承中涉及到

2.7k
Kotlin循环语句
Kotlin

Kotlin循环语句

Kotlin循环语句每门语言都要学一下循环语句,虽然每种语言都有for、while等循环,但总有些各自的特色。1、for循环for循环遍历集合或者数组,使用 in 关键字遍历任何提供迭代器。语法:例:先定义一个数组或集合array:遍历集合array:通常还需要用到索引index,调用集合的withIndex()方法参与循环遍历。例:使用下面的方式遍历for循环,同时获取元素当前索引index和当

2.5k