gpt4 book ai didi

scala - 名称/惰性函数的重复参数

转载 作者:行者123 更新时间:2023-12-04 21:58:36 25 4
gpt4 key购买 nike

我想要一个包含可变数量函数的函数,但我希望在实际使用它们之前不要对它们求值。我可以使用 () => type 语法,但我更愿意使用 => type 语法,因为它似乎是为延迟评估而定制的。

当我尝试这样的事情时:

  def functions(fns: => String*) = "OK"

我得到错误:

error: ')' expected but identifier found.
def functions(fns: => String*) = "OK"

有趣的是,当我把它改成

时它工作正常
def functions(fns: () => String*) = "OK"

我需要做什么才能让我的第一个功能发挥作用?

最佳答案

自从我提交了这个问题:

https://issues.scala-lang.org/browse/SI-5787

它可能会发生。

根据您的语义,考虑使用延迟计算的 Stream[String]。

  def foo(i: Int): String = { println(s"Numbering $i"); s"Number $i" }
val invocations = foo(2) #:: foo(4) #:: foo(5) #:: foo(8) #:: Stream.empty

编辑:然后我想,刚才不是有人问过这个吗?更多答案here使用隐式。我认为我的回答应该只因为“这曾经首先发生”而被投票。

关于scala - 名称/惰性函数的重复参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13549130/

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