kotlin jetpack 撰写代码示例中的“提供”语法是什么?

ast*_*mme 10 android kotlin android-jetpack-compose

此代码示例中的“提供”语法是什么?它有什么作用?

LocalContentAlpha provides ContentAlpha.medium
Run Code Online (Sandbox Code Playgroud)

它似乎不是一个标准的 kotlin 关键字,而且我在谷歌上搜索“kotlin提供关键字”或“jetpack compose提供”等查询也没有太多运气。

这显示在Jetpack Compose codelab上,完整片段如下。

@Composable
fun PhotographerCard() {
    Column {
        Text("Alfred Sisley", fontWeight = FontWeight.Bold)
        // LocalContentAlpha is defining opacity level of its children
        CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) {
            Text("3 minutes ago", style = MaterialTheme.typography.body2)
        }
    }
}

@Preview
@Composable
fun PhotographerCardPreview() {
    LayoutsCodelabTheme {
        PhotographerCard()
    }
}
Run Code Online (Sandbox Code Playgroud)

ian*_*ake 13

这是中缀函数的示例:

用 infix 关键字标记的函数也可以使用中缀表示法来调用(省略调用时的点和括号)。

从该方法的文档infix中存在关键字可以看出。

因此该方法可以正常调用为LocalContentAlpha.provides(ContentAlpha.medium),但中缀表示法允许删除那些额外的语法字符。