gpt4 book ai didi

scala - 这是一种什么样的Scala语法呢?

转载 作者:行者123 更新时间:2023-12-03 04:06:26 26 4
gpt4 key购买 nike

我知道 Scala 的基本语法,但在下面的代码中,我不明白 describeit 结构在做什么。它们是某种匿名函数还是什么?

class SentimentAnalyzerSpec extends FunSpec with Matchers {

describe("sentiment analyzer") {

it("should return POSITIVE when input has positive emotion") {
val input = "Scala is a great general purpose language."
val sentiment = SentimentAnalyzer.mainSentiment(input)
sentiment should be(Sentiment.POSITIVE)
}
}
}

最佳答案

这些只是从 mixin 特征继承的方法和变量。您可以自己做类似的事情:

trait MyDsl {
def bar(n: Int) = 123
def foo(s: String)(d: String) = 234
}

所以如果你把它混合在另一个类中,你可以这样写

class MyClass1 extends MyDsl {
bar(foo("hello")("hi"))
}

(注意foo是一个多参数列表函数,Java中不存在)

因为 Scala 允许您通过中缀表示法省略括号,( 可能会被省略并替换为 { 以对参数表达式进行分组。所以它变成:

class MyClass1 extends MyDsl {
bar {
foo("hello") {
"hi"
}
}
}

现在,所有这些定义实际上都发生在 MyClass1 的主构造函数内

关于scala - 这是一种什么样的Scala语法呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39549841/

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