Kotlin:我如何将谓词传递给CharSequence.any()函数?

时间:2014-11-10 16:04:53

标签: kotlin

我正在尝试查找角色是否属于字符串。

var s = "abcdef"
var result = s.any('d')

但我无法理解这种语法。来自docs

fun CharSequence.any(predicate: (Char) -> Boolean): Boolean 

如何将谓词传递给函数?

1 个答案:

答案 0 :(得分:15)

完整语法:

s.any({ ch -> ch == 'd' })

我们可以做一些简化。

首先,由于lambda参数是最后一个,我们可以将它放在括号之外,并在没有剩余参数的情况下完全省略它们。

其次,对于带有一个参数的lambda函数文字,可以省略参数声明并通过it名称引用该参数。

因此,简化的等价物将是:

s.any { it == 'd' }