scala 基础 隐式类型
2015-12-29 00:35
218 查看
关键字implicit用来标记一个隐式定义。编译器才可以选择它作为隐式变化的候选项。你可以使用implicit来标记任意变量,函数或是对象。
你可以为implicit定义任意的名称。通常情况下你可以任意命名,implicit的名称只在两种情况下有用:一是你想在一个方法中明确指明,另外一个是想把那一个引入到当前作用域。
你可以为implicit定义任意的名称。通常情况下你可以任意命名,implicit的名称只在两种情况下有用:一是你想在一个方法中明确指明,另外一个是想把那一个引入到当前作用域。
[code]object Implicit { def main(args: Array[String]): Unit = { import java.util._ class DateHelper(number: Int){ def days(when: String): Date={ var date = Calendar.getInstance() when match{ case "ago" => date.add(Calendar.DAY_OF_MONTH,-number) case "from_now" => date.add(Calendar.DAY_OF_MONTH,number) case _ => date } date.getTime() } } //只要该方法在当前范围内存在(通过当前import可见或是位于当前文件) //scala就会自动调用它,将int转换为DateHelper实例然后调用days方法 implicit def convertInt2DateHelper(number: Int) = new DateHelper(number) val past = 2 days "ago" println(past) val appointment = 5 days "from_now" println(appointment) } }
相关文章推荐
- leetcode笔记:Nim Game
- 在命令行中通过adb shell am broadcast发送广播通知
- Linux下面安培星际译王-Stardict
- Android中PhoneGap的使用方法
- Android HLS协议相关记录及部分解析
- layout内容整理
- 插入数组越界问题的探索
- Boost笔记--Thread--Ubuntu上初次使用时遇到的问题
- JavaScript高级程序设计:第三章
- JavaScript高级程序设计:第二章
- iso uinavigationcontrollerdemo2
- JavaScript高级程序设计:第一章
- 弱水三千,岂非本源?
- 258. Add Digits
- hibernate框架学习(关联关系)
- java的流和编码
- Codeforces Round #337 (Div. 2) E. Alphabet Permutations (线段树lazy 或 set)
- JVM的垃圾回收
- 基于javaConfig的springDataJpa+dubbo+springMvc搭建(一)
- 自学Python之变量