filter(numberRegex::matches) //sampleEnd fun main(args: Array<String>) { println("Result is $numbers") } </div> 更详细信息请参阅其 KEEP。 密封类和数据类 Kotlin 1.1 删除了一些对 Kotlin 1.0 中已存在的密封类和数据类的限制。 现在你可以在同一个文件中的
for (element in this) if (predicate(element)) destination.add(element) return destination } 1. 2. 3. 4. 5. 6. 7. 正所谓,知其然也要知其所以然。如上源码所示,filter的本质就是,循环判断block是否满足条件,如果满足则添加进入list,最后返回 简单使用如下: arrayOf(1,2,3,4,5,6).filter { it...
不仅Array扩展了此方法,各种其他数据类型的数组都扩展了此方法。所以集合可以很方便地构造一个 Flow。 3、flow {···}方法。这个方法可以在其内部顺序调用emit方法或emitAll方法从而构造一个顺序执行的 Flow。emit是发射单个值;emitAll是发射一个流,这两个方法分别类似于list.add(item)、list.addAll(list2)方法。
操作符是我们日常Kotlin开发的利器,如果我们点进去看看源码,我们会发现这些操作符大多都会使用inline。inlinefun<T> Iterable<T>.filter(predicate: (T)->Boolean): List<T>{val destination = ArrayList<T>()for (element inthis) if (predicate(element))destination.add(element)return destination} 既然官方标...
public inline fun <T> Array<out T>.forEach(action: (T) -> Unit): Unit { for (element in this) action(element) } 1. 运算符重载与中缀表达式 运算符重载 fun main(args: Array<String>) { val point2 = Point(1, 2) + Point(3, 4) println(point2) } class Point(val x: Int, val...
add(element) } MutableList<E>就是前面常说的不变的类型,同样具有可读可写操作,但是这里的source的集合泛型类型声明成了out协变,会不会又蒙了。应该不会啊,有了之前逆变的例子,应该大家都猜到为什么了。很简单就是因为在copyList函数中,source集合没有涉及写操作只有读操作,所以可以使用 使用点变型将MutableList...
find { it > 3 } } //使用普通集合 fun main(args: Array<String>){ (0..100) .map { it + 1 } .filter { it % 2 == 0 } .find { it > 3 } } 通过以上的原理转化图,会发现使用序列会逐个元素进行操作,在进行末端操作find获得结果之前提早去除一些不必要的操作,以及find找到一个符合条件...
//用指定元素替换掉该集合中指定位置的元素 abstract fun set(index: Int, element: E): E toArray 代码语言:javascript 代码运行次数:0 运行 AI代码解释 //将集合转换成Array open fun toArray(): Array<Any?> toString 代码语言:javascript 代码运行次数:0 运行 AI代码解释 //返回一个表达该集合的字符串...
fun main(args: Array<String>) { val fruit:String= "orange"//1 a = "banana" //2 Error } 创建水果变量,并用字符串orange的值进行初始化 编译器会抛出错误,因为水果变量已经被初始化 Kotlin 还允许我们在文件级别定义变量和函数。我们将在第三章“玩转函数”中进一步讨论。
int size = env->GetArrayLength(names); for (int i = 0; i < size; i++) { jstring name_index = static_cast<jstring>(env->GetObjectArrayElement(names, i)); const char *c_name = env->GetStringUTFChars(name_index, NULL); LOGE("姓名:%s", c_name);...