这个 kotlin jetpack compose 代码示例中的“提供”语法是啥?
Posted
技术标签:
【中文标题】这个 kotlin jetpack compose 代码示例中的“提供”语法是啥?【英文标题】:What is this "provides" syntax in this kotlin jetpack compose code sample?这个 kotlin jetpack compose 代码示例中的“提供”语法是什么? 【发布时间】:2022-01-22 05:24:42 【问题描述】:此代码示例中的“provides”语法是什么?它的作用是什么?
LocalContentAlpha provides ContentAlpha.medium
它似乎不是标准的 kotlin 关键字,而且我在谷歌上搜索“kotlin 提供关键字”或“jetpack compose 提供”之类的查询并不幸运。
这显示在Jetpack Compose codelab,下面是完整的sn-p。
@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()
【问题讨论】:
如果您在 android Studio 中对此类关键字或相邻单词按 CTRL+B,您将看到这些关键字的完整文档。几乎没有耐心,我想有办法找到它的作用;) 【参考方案1】:这是infix function 的示例:
用中缀关键字标记的函数也可以使用中缀表示法调用(调用时省略点和括号)。
从method's documentation 上存在infix
关键字可以看出。
因此方法可以正常调用为LocalContentAlpha.provides(ContentAlpha.medium)
,但中缀表示法允许删除那些额外的语法字符。
【讨论】:
以上是关于这个 kotlin jetpack compose 代码示例中的“提供”语法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin 1.5.0 上的 Jetpack Compose
Kotlin Jetpack Compose remember 给Icon添加透明度
Kotlin jetpack compose Tab的渲染 AnimatedVisibility的使用
Kotlin jetpack compose 文本输入框ExitText/TextField remember 居然可以传两个参数