gpt4 book ai didi

java - scala 中的模式匹配。当参数表现出多态性或者是子类时,会有什么行为::

转载 作者:行者123 更新时间:2023-12-02 11:09:54 25 4
gpt4 key购买 nike

我是scala新手,我在java方面有一些经验。在他们网站的模式匹配部分中,他们提到当参数传递给函数时,可以根据参数的引用类型实现不同的逻辑。如果是这样,那么当扩展许多类和接口(interface)的参数传递给包含它实现的所有类和接口(interface)的模式匹配时,会出现什么行为?如果仅实现第一个类/接口(interface),那么可以采取什么方法来实现与其实现的所有类/接口(interface)相关的所有逻辑?

Code from scala website

Link to website .

最佳答案

你是对的,match语句将仅执行第一个 case匹配,它不会检查或执行后面的匹配(否则 case _ 将始终被执行)。

不存在“解决方法”,因为这不是错误或限制,而是该语言的一个非常有用的功能。

<小时/>

听起来好像你有许多不同的trait每个特征都有不同的行为,并且您希望对所有特征执行该行为。

最好的方法是编写单独的函数来匹配每个特征(SumVar等),并在Tree上一一调用它们。实例。您可以制作这些序列并使用 foldLeft依次应用它们中的每一个。自从你的derive函数返回一个新的Tree例如,您需要明确要应用操作的顺序。

我仍然不清楚为什么你有一个对象同时代表 Var和一个 Const ,所以我怀疑你的数据结构存在更深层次的问题。

关于java - scala 中的模式匹配。当参数表现出多态性或者是子类时,会有什么行为::,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50683730/

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