gpt4 book ai didi

scala - 你如何在 scala 中编写模式匹配代码块?

转载 作者:行者123 更新时间:2023-12-04 15:55:48 25 4
gpt4 key购买 nike

您如何编写一个将代码块作为包含案例语句的参数的函数?例如,在我的代码块中,我不想明确地进行匹配或默认情况。我正在寻找这样的东西

myApi {
case Whatever() => // code for case 1
case SomethingElse() => // code for case 2
}

在 myApi() 内部,它实际上会执行代码块并进行匹配。

最佳答案

您必须使用 PartialFunction为了这。

scala> def patternMatchWithPartialFunction(x: Any)(f: PartialFunction[Any, Unit]) = f(x)
patternMatchWithPartialFunction: (x: Any)(f: PartialFunction[Any,Unit])Unit

scala> patternMatchWithPartialFunction("hello") {
| case s: String => println("Found a string with value: " + s)
| case _ => println("Found something else")
| }
Found a string with value: hello

scala> patternMatchWithPartialFunction(42) {
| case s: String => println("Found a string with value: " + s)
| case _ => println("Found something else")
| }
Found something else

关于scala - 你如何在 scala 中编写模式匹配代码块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2800389/

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