- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 Scala隐式转换之隐式参数
/** * 隐式转换函数——隐式参数 */class SingPen { def write(content: String): Unit = { println(content) }}object ImplicitDemo3 { // def exam(name: String, pen: SingPen): Unit = { //被implicit修饰
2017-10-29 16:48:38 287
原创 Scala隐式转换之隐式转换函数
/** * 隐式转换是Scala中一种特殊的功能,它能将一种数据类型转换成另外一种数据类型, * 然后这种数据类型将拥有另外一种数据类型的所有方法,可以看成是对类的一种增强。 * 隐式转换分为两种: * 1.隐式转换函数 * 2.隐式转换值 * * 定义隐式转换的关键字是implicit * 隐式转换的命名方式是one2one的形式 */class Speci
2017-10-29 15:54:53 791
原创 Scala类型参数——泛型之逆变
/** * 逆变,也是Scala中一种比较特殊的功能,它也完美的解决了在Java中泛型的一大缺憾。 * 比如,Professor02是Master02的子类,那么Card[Professor02]是不是Card[Master02]的子类? * 这个在Java中是 不是的,但是在Scala中因为逆变、协变这个特色功能的存在,它就是其子类。 * 逆变其实就是泛型类下边界的加强版。
2017-10-29 15:03:33 350
原创 Scala类型参数——泛型之协变
/** * 协变,是Scala中比较有特色的功能,它完美的解决了Java中泛型的一些缺陷。 * 比如 Professor是Master的子类,那么Card[Professor]是不是Card[Master]的子类呢? * 在Java中,很遗憾,不是!这给我们编码带来很多局限性。Scala的协变完美的解决了这一问题。 * 其实这个协变就是泛型的上边界的一种加强版。 *///大师
2017-10-29 14:39:33 479
原创 Scala Trait(四)
/** * Trait的构造机制 *///trait也有主构造代码块,不包含在任何方法中的代码就是trait的主构造器的代码trait TraitDemo04 { println("这是TraitDemo04的主构造代码块!")}trait TraitDemo04_01 extends TraitDemo04 { println("这是TraitDemo04_01的主构造
2017-10-28 23:37:50 144
原创 Scala Trait(三)
/** * 为实例对象混入trait */trait TraitDemo03 { def say: Unit = { println("hello world!") }}//一个在继承了一个父类或trait,那么这个类就拥有该类或trait的所有非私有的方法class Baby(var name: String, var age: Int)object Bab
2017-10-28 23:36:50 143
原创 Scala Trait(二)
/** * trait中定义具体方法和具体的字段 */trait TraitDemo02 { //具体字段(非抽象字段) //使用var修饰的非抽象字段,不能被重写 var name: String = "李四" //使用val修饰的非抽象字段,可以被重写 val age = 20 //抽象字段,不管是使用var或val修饰的抽象字段,都可以被重写 val
2017-10-28 22:25:26 178
原创 Scala Trait(一)
/** * 在Scala中trait是一种特殊的概念。trait的用途很多,可以作为类似于Java的interface接口使用。 * 类可以支持对trait的多重继承,继承的时候统一使用extends关键字,没有implement关键字。 * scala的类对类只能单继承,但是对trait可以多继承。 */trait TraitDemo01 { //抽象方法 def sa
2017-10-28 22:24:29 235
原创 Scala继承的特点
nabstract class ClassDemo { //定义抽象字段 val name: String //定义具体字段 //val age:Int=20 var age: Int = 10 //抽象字段不能使用private修饰,因为抽象字段本身就是需要子类去实现。 //如果添加private关键字修饰后,意味着子类不能访问,也就意味着不能实现该字段,那么会报错
2017-10-27 10:34:28 219
原创 Scala模式匹配
object MatchDemo { /** * 定义偏函数用PartialFunction来表示 * PartialFunction[T1,T2],T1表示传入参数的数据类型,T2表示返回值的数据类型 * 偏函数体中的case只会执行一个,如果匹配到了就不会继续往下匹配 */ val func: PartialFunction[String, Int] =
2017-10-22 23:05:01 194
原创 Scala函数定义
/** * Created by TG on 2017/10/19. * 定义函数的关键字是:val * 定义函数的通用格式是:val 函数名=(参数列表)=>{函数体} * 在函数式编程中,函数是头等公民。 * 函数可以像其他任意数据类型一样被传递和操作 */object FunctionDemo { //通用的定义格式 //val 函数名=(参数列表)=>{函
2017-10-19 15:22:57 590
原创 Scala方法定义
/** * Created by TG on 2017/10/17. * 在Scala中,定义方法的关键字是def * 定义方法的通用格式:关键字 方法名(参数列表):方法的返回值类型={方法体} */object MethodDemo { //方法的返回值不需要使用return关键字,同时方法的最后一条语句的返回值作为整个方法的返回值 def m1(x: Int, y:
2017-10-19 09:37:19 483
Hive数据仓库(一)
2016-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人