gpt4 book ai didi

operators - *arrayOf() 是一个语句吗?

转载 作者:行者123 更新时间:2023-12-02 22:54:46 24 4
gpt4 key购买 nike

我正在使用 spread operator ,当我注意到一些奇怪的事情时:

// compiles
val list1 = listOf(1, 2, *(if(0 > 1) arrayOf(3) else arrayOf()))

// does not compile
val list2 = listOf(1, 2, if(0 > 1) *arrayOf(3) else *arrayOf())

编译器错误之一是

Expecting an expression

  • 那么,*arrayOf() 是一个语句吗?
  • 如果是,如何通过 listOf() 对其求值?

最佳答案

不,这既不是陈述也不是表达。

扩展运算符有一个非常特殊的作用:它只能修改作为vararg传递的数组类型表达式的语义,给出一种特殊类型的参数。它不能在其他表达式中独立使用,这就是为什么在 if 表达式中使用它的代码无法编译的原因。

关于operators - *arrayOf() 是一个语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46124698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com