Kotlin with函数

先看class ViewGroup的示例,

使用with函数之前:

val childViews = (0..viewGroup.childCount - 1).map { viewGroup.getChildAt(it) }

这里分别调用了viewGroup的childCount属性和getChildAt()方法。

使用with函数重构:

with(viewGroup) {
val childViews = (0..childCount - 1).map { getChildAt(it) }
}

在with函数里调用viewGroup的childCount和getChildAt()方法,不需要在属性/方法前使用前缀viewGroup.引用。

with函数可以让我们创建一个以变量作为上下文的代码块,这样就不需要每次使用它时重复它的名字。with可以简单理解为“有了”,“有了变量X”。这样代码也显得简洁。

版权声明:著作权归作者所有。

相关推荐

Kotlin传递函数作为参数的方式

Kotlin传递函数作为参数,可以有:命名参数,位置参数以及在参数列表外,以lamba的形式传递。示例data class Person(val name: String,                &nb

理解JavaScript普通函数以及箭头函数里使用的this

this普通函数的this普通函数的this是由动态作用域决定,它总指向于它的直接调用者。具体可以分为以下四项:this总是指向它的直接调用者, 例如 obj.func() ,那么func()里的this指的是obj。在默认情况(非严格模式,未使用 'use strict'),如果函数没有直接调用者,this为window在严格模式下,如果函数没有

Kotlin集合扩展函数 - 转换

Kotlin 集合类型提供了很多用于转换的扩展函数。这里需要指出示例里的intList为val intList: List<I­nt> = listOf(1, 2, 3) associate关联函数:使用转换函数把Array或Iterable转换为Map:数组fun <T, K, V> any_array

Kotlin集合扩展函数 - 创建集合

Kotlin标准包提供了一系列的扩展函数用来创建集合,包括Array,List,Set,Map以及可变集合。这里需要指出示例里的intList为val intList: List<I­nt> = listOf(1, 2, 3) Array创建数组基本方式val intArray: Array<­Int

Kotlin:基本类型 - Char与Boolean

字符类型Kotlin使用Char表示字符,与Java不同的是,它并不能直接和数字做类型转换。字符表示它们使用单引号''把字符括起来特殊字符:特殊字符串使用反斜杠开头,如\t, \b, \n, \r, \', \", \\ and \$其他一些字符可以使用Unicode编码,如'\uFF00'数字转换Kotlin的字符不能直接和数字做类型转换,但我们可以它们的unicode码的相对差来做数