不知道你怎么使用case class,不需要pattern matching的话,直接用constructor,不要用case class了;...
case class Person(name:String,age:Int) object ConstructorPattern { def main(args: Array[String]): Unit = { val p=new Person("摇摆少年梦",27) def constructorPattern(p:Person)=p match { case Person(name,age) => "Person" case _ => "Other" } } } 1. 2. 3. 4. 5. 6. 7. 8....
//将Person类定义为case class case class Person(name : String,age : Int) object ConstructorPattern{ def main(args:Array[String]) :Unit = { val p = new Person("nyz",27) def constructorPattern(p : Person) = p match { //构造器模式必须将Person类定义为case class,否则需要自己定义伴生对象...
caseclassdata(a:Int,b:String,c:String,d:Int,e:Int)valarr=line.split("\t")vali=arr.iterator...
Class Structure Auxiliary Class Constructors Supplying Default Values for Constructor Parameters Bonus: Named parameters Basic Scala Methods 点关注不迷路 Classes 为了支持面向对象编程,Scala提供了类结构,相比于Java和C#等语言,它的语法更为简洁, 但他仍然是易用且可读的. Basic Class Constructors 创建一个简单...
//构造器模式必须将类定义为case classcaseclassPerson(name:String,age:Int)objectConstructorPattern{defmain(args:Array[String]):Unit= {valp=newPerson("摇摆少年梦",27)defconstructorPattern(p:Person)=pmatch{casePerson(name,age) =>"Person"case_ =>"Other"} ...
Constructor patterns 也就是最开始的例子中使用的匹配模式:case BinOp("+", e, Number(0)) => e,首先要检查这个对象是否为指定的 case class 的成员,然后检查构造方法的参数是否符合额外匹配(deep matches:意味着进行深层次的匹配),例如上例中的 "+" 是 constant pattern,e 是 variable 匹配,而 Number(0)...
//构造器模式必须将类定义为case classcaseclassPerson(name:String,age:Int)objectConstructorPattern{defmain(args:Array[String]):Unit= {valp=newPerson("摇摆少年梦",27)defconstructorPattern(p:Person)=pmatch{casePerson(name,age) =>"Person"case_ =>"Other"} ...
("Tom",20) tom: Person = Person(Tom,20) scala> def matchConstructor(x:Any) = x match { | case Person("Tony",18) => println("Hi Tony") | case Person("Monica",15)=> println("Hi Monica") | case Person(name,age) => println(s"Who are you,$age year-old person named $name...
使用Mirror对象获取case类的类型信息: 代码语言:txt 复制 val classSymbol = ru.typeOf[Person].typeSymbol.asClass val classMirror = mirror.reflectClass(classSymbol) val constructor = ru.typeOf[Person].decl(ru.termNames.CONSTRUCTOR).asMethod val constructorMirror = classMirror.reflectConstructor(cons...