gpt4 book ai didi

scala - scala 可以接受元组的任何派生作为参数列表吗?

转载 作者:行者123 更新时间:2023-12-04 02:17:57 24 4
gpt4 key购买 nike

scala 的设计和实现是否真的无法将元组转换为可接受的参数列表?在 How to pass a tuple argument the best way?它反过来 - 转换参数接受方法。这似乎没有涵盖一个微不足道的用例:

如果没有这种方式,代码会变得笨拙,例如当您尝试扩展一个带参数的类时,例如当你想扩展一个接受参数的类时,你不能修改它的源代码。在这种情况下,您需要产生一个工厂对象来克服上述限制,因为没有函数可以替代被扩展类的参数列表。因此,您可以通过创建一个工厂对象来解决这个问题,该对象实例化您希望扩展的类,而不是仅仅扩展它,作为一种变通方法。这种解决方法对我来说很显眼且不经济。

提前致谢。

最佳答案

这可以使用标准语言功能来实现。您可以定义一个扩展类,它只将元组转换为原始类定义所期望的参数。

例子

 class TakeTwo(a: Int, b: Int)

class TakeTwoTuple( t : (Int,Int) ) extends TakeTwo(t._1, t._2)


scala> val tuple = (3,4)
tuple: (Int, Int) = (3,4)

scala> new TakeTwoTuple(tuple)

关于scala - scala 可以接受元组的任何派生作为参数列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32885498/

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