不同種類的流 1 - 如果存在則渴望使用第一項

// Java:
Arrays.asList("a1", "a2", "a3")
    .stream()
    .findFirst()
    .ifPresent(System.out::println);    
// Kotlin:
listOf("a1", "a2", "a3").firstOrNull()?.apply(::println)

或者,在 String 上建立一個名為 ifPresent 的擴充套件函式:

// Kotlin:
inline fun String?.ifPresent(thenDo: (String)->Unit) = this?.apply { thenDo(this) }

// now use the new extension function:
listOf("a1", "a2", "a3").firstOrNull().ifPresent(::println)

另見: apply() 功能

另請參見: 擴充套件函式

另請參閱: ?. 安全呼叫運算子 ,以及一般的可空性: http//stackoverflow.com/questions/34498562/in-kotlin-what-is-the-idiomatic-way-to-deal-with-nullable-values-referencing -o / 34498563#34498563