3. 类.对象.继承和trait 3.1 类 3.1.1 类的定义 Scala中,可以在类中定义类.以在函数中定义函数.可以在类中定义object:可以在函数中定义类,类成员的缺省访问级别是:public //在Scala中,类不用声明为public //Scala源文件中可以包含多个类,所有这些类都具有公有可见性 class Person { //val修饰的变量是只读属性,相当于Java中final修饰的变量,只提供get() val id = "1" //var修饰的变量,提供g
A trait provides code reusability in Scala by encapsulating method and state and then offing possibility of mixing them into classes thus allowing code reuse. #define Trait Gliding scala> trait Gliding{ | def gliding(){ println("gliding")} |
Scala 禁止case class inheritance case class Person(name: String, age: Int) case class FootballPlayer(name: String, age: Int, number: Int) extends Person(name, age) 在编译时会报出以下错误: Error:(5, 12) case class FootballPlayer has case ancestor Person, but case-
前面两节我们已经多次接触过case关键字了.case关键字不仅可以用在match/case中来执行模式匹配,也可以用来修饰类.不过用case修饰的类也主要是用来做模式匹配.在上一节曾经提到过match可以是Any类型的所有类,为什么还需要使用case关键字来修饰呢?假定有这样一个场景:我们要接收和处理股票交易信息,买卖消息通常会带有一些信息,诸如股票名称.数量.把这些信息存到对象里会很方便,但是如何对他们进行模式匹配呢?这时我们就会用到case类了.case类是模式匹配器(pattern mat
switch-case语句格式如下 switch(变量){ case 变量值1: //; break; case 变量值2: //...; break; ... case default: //...; break; } swtich()变量类型只能是int.short.char.byte和enum类型.当进行case判断时,JVM会自动从上到小扫描,寻找匹配的case,可能存在以下情况: 情况一:若未找到,则执行默认的case. int i = 5; switch(i){ case 0: Sy
达到的需求为: 吓数收回日期为空:当接单日期不等于空和当天减接单日期大于3天时,为1,否则为0:当接单日期为空.最大发织交期不等于空和当天减去最大发织交期大于3天时,为1,否则为0:当接单日期和发织交期都为空,为1,否则为0:吓数收回日期不为空,为0. case when (isnull(v._RDate,'')='') then case when (isnull(p.xCDate,'')<>'') ) end else case when ((isnull(p.xCDate,'')='')
Switch(temp) { case "A": //跳出循环 break; case "B": //返回值 return var; case "C": //抛出异常 throw new Exception(); } break语句是用来阻止贯穿的最常见的方式,但也可以用一个return语句或者一个throw语句来替代它
1. Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 如下: select case when t.a = '2' then '是1' else '不是1' end A from AAA t