scala基础语法-隐式转换,隐式类
2015-01-04 11:11
316 查看
package org.xj.scala.spark
/**
* 隐式转换
*/
class Basic7 {
}
class A {
}
class RichA(a: A) { //A中增加方法,隐式转换
def rich {
println("rich...")
}
}
object Basic7 extends App {
/**
* 隐式转换,为一些类增加方法
*/
implicit def a2RichA(a: A) = new RichA(a) //隐式转换 a-->RichA
val a = new A
a.rich
/**
* 隐式参数
*/
def testParam(implicit name: String) { //隐式参数
println(name)
}
implicit val name = "implicit !!!" //隐式参数赋值
//testParam //不需要传参数,testParam()会报错
//testParam("xxx") //调用赋值,非常的灵活,各种各样的写法
/**
* 隐式类
*/
implicit class Calculator(x: Int) {
//为Int类型扩展,add方法
def add(a: Int): Int = a+1
}
//implicit xx.xx.Calculator
println(1.add(1)) //Int类型都能拥有扩展的add方法
}
/**
* 隐式转换
*/
class Basic7 {
}
class A {
}
class RichA(a: A) { //A中增加方法,隐式转换
def rich {
println("rich...")
}
}
object Basic7 extends App {
/**
* 隐式转换,为一些类增加方法
*/
implicit def a2RichA(a: A) = new RichA(a) //隐式转换 a-->RichA
val a = new A
a.rich
/**
* 隐式参数
*/
def testParam(implicit name: String) { //隐式参数
println(name)
}
implicit val name = "implicit !!!" //隐式参数赋值
//testParam //不需要传参数,testParam()会报错
//testParam("xxx") //调用赋值,非常的灵活,各种各样的写法
/**
* 隐式类
*/
implicit class Calculator(x: Int) {
//为Int类型扩展,add方法
def add(a: Int): Int = a+1
}
//implicit xx.xx.Calculator
println(1.add(1)) //Int类型都能拥有扩展的add方法
}
相关文章推荐
- Scala基础应用(9)- 隐式转换
- 【Spark-Scala语法】implicit(隐式转换)关键字详解
- Scala语法基础-5类型检查和转换
- scala基础之隐式转换
- Scala 中的隐式转换 implicit
- 【Java.Web】JSP —— 语法基础 —— 隐式对象implicit Objects
- scala implicit 隐式转换
- scala_集合_泛型_隐式转换
- C++语法基础--模板实参推断,模板类型形参的实参的受限转换,模板实参推断与函数指针
- Scala中隐式转换(implicit conversion)的优先顺序
- Scala 基础语法代码
- C++语法基础--转换操作符,重载确定
- JavaScript基础(语法类型转换、运算符、语句)
- Scala 基础语法代码<转>
- scala-隐式转换
- scala 隐式转换
- 学习Scala:Map初始化过程详解及隐式类型转换
- C#基础:类型转换(隐式转换和显示转换)
- scala入门2(简介与基础语法2--数值类型)
- Scala的main方法、包、for循环、操作符重载、 系统定义、implicit隐式转换及泛型