"b"} f.apply("a") //returns "b-6ren">
gpt4 book ai didi

Scala - 函数应用与匹配子句

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

这段 Scala 代码 a) 运行良好:

val f : Function[String, String] = { case "a" => "b"}
f.apply("a") //returns "b"

和b)一样

"a" match { case "a" => "b" } //returns "b"

1) b) 中的 match 子句是 a) 的语法糖吗?

2) 为什么这不起作用...?

{ case "a" => "b"}.apply("b") //Does not compile

谢谢!

最佳答案

答案:

  1. 没有。 a) 是模式匹配匿名函数(Scala 语言规范第 8.5 节),而 b) 是模式匹配表达式(Scala 语言规范第 8.4 节)。它们略有不同。

  2. 这是行不通的,因为它需要一个类型来解析为一个函数。您可以使用类型注释使其工作:

    ({ case "a"=> "b"}: PartialFunction[String, String]).apply("b")

关于Scala - 函数应用与匹配子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49838559/

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