寻找如何使用的示例@_*&引用;在Scala中进行模式匹配时
我一直在搜索一些示例,但找不到任何示例演示@*在模式匹配案例类时的用法 下面是我所指的应用程序的一个示例寻找如何使用的示例@_*&引用;在Scala中进行模式匹配时,scala,operators,pattern-matching,Scala,Operators,Pattern Matching,我一直在搜索一些示例,但找不到任何示例演示@*在模式匹配案例类时的用法 下面是我所指的应用程序的一个示例 def findPerimeter(o: SomeObject): Perimeter = o match { case Type1(length, width) => new Perimeter(0, 0, length, width) case Type2(radius) => new Perimeter(0, 0, 2*radius, 2*radius) ...
def findPerimeter(o: SomeObject): Perimeter = o match {
case Type1(length, width) =>
new Perimeter(0, 0, length, width)
case Type2(radius) =>
new Perimeter(0, 0, 2*radius, 2*radius)
...
case MixedTypes(group @_*) => {
\\How could @_* be used to check subpatterns of group?
}
}
如果有人能给我看一些例子,或者给我指一个有一些例子的网页,那就太好了
感谢Wampler/Payne为Scala编程 还有另一个问题:
还有每日Scala的博客帖子。记住
Type2(3.0) match {
case t2 @ Type2(radius) => //...
}
将radius
绑定到值3.0
,并将t2
绑定到匹配的Type2实例
以您的例子:
def findPerimeter(o: SomeObject): Perimeter = o match {
case Type1(length, width) => new Perimeter(0, 0, length, width)
case Type2(radius) => new Perimeter(0, 0, 2*radius, 2*radius)
// ...
// assume that Perimeter defines a + operator
case MixedTypes(group @ _*) => group.reduceLeft(findPerimeter(_) + findPerimeter(_))
}
这里,group
绑定到定义MixedTypes
的SomeObject
s序列。您可以将其视为MixedTypes的构造函数参数的序列