隐式转换
scala> class Student(name:String)
defined class Student
scala> import scala.language.implicitConversions
import scala.language.implicitConversions
scala> implicit def str2Student(name:String)= new Student(name)
str2Student: (name: String)Student
scala> def sayHello(s:Student){ println(" hello ")}
sayHello: (s: Student)Unit
scala> val s = new Student("tom")
s: Student = Student@17bf3182
scala> sayHello(s)
hello
scala> sayHello("just a test")
hello
----------------------------------
隐式转换加强现有类型
scala> class Man(val name:String)
defined class Man
scala> class SuperMan(val name:String){ def emitLaser=println(" emit laser ")}
defined class SuperMan
scala> import scala.language.implicitConversions
import scala.language.implicitConversions
scala> implicit def man2superman(man:Man):SuperMan = new SuperMan(man.name)
man2superman: (man: Man)SuperMan
scala>
scala> val s= new Man(" man ")
s: Man = Man@5d74507c
scala> s.emitLaser
emit laser
默认会使用两种隐式转换: 一种是源或者目标类的 伴生对象内的隐式转换函数
另一种是 当前程序作用域内的可以用唯一标识符表示的隐式转换函数
上述两种情况找不到 就必须手动 import
----------------------------------
隐式参数
scala> class SignPen { def writ(content :String)=println(content)}
defined class SignPen
scala> implicit val signPen = new SignPen
signPen: SignPen = SignPen@3bf4644c
scala> def signForExam(name:String)(implicit signPen:SignPen) { signPen.writ(name+ "come to exam in time")}
signForExam: (name: String)(implicit signPen: SignPen)Unit
scala>
scala> signForExam("tomcat")
tomcatcome to exam in time
相关推荐
1. 类型系统:Scala的类型系统非常强大,支持静态类型检查,同时也允许隐式转换和类型推断,这使得编写代码时可以减少类型声明的繁琐。 2. 面向对象:Scala是面向对象的语言,支持类、对象、继承、封装和多态。同时...
7. **类型系统**:Scala具有复杂的类型系统,包括类型参数化(Generics)、类型推导、类型别名、类型成员、隐式转换等。这些特性使得Scala在编写泛型代码和高级类型操作时具有很高的灵活性。 8. **模式匹配**:...
读书笔记:基本的scala编程其中包含隐式转换和Actor编程
Scala支持隐式转换和隐式参数,可以自动将一个类型转换为另一个类型,或者在函数调用时自动提供某些参数。 #### 类型参数化 Scala中的类型参数化允许开发者创建泛型类和函数,从而编写更加通用的代码。 #### 类型...
- **隐式转换**:通过 `implicit` 关键字定义隐式转换规则,可以在编译时自动转换类型。 - **延迟初始化**:使用 `lazy` 关键字定义变量,该变量只在首次使用时计算并存储结果。 - **异常处理**:Scala 提供了丰富的...
Scala的类型系统十分强大,包括类型推断、类型参数、隐式转换等特性。深入理解这些内容有助于编写出更加简洁和安全的代码。 9. **Option类型** Option是Scala处理null安全的方式,避免了常见的空指针异常。学会...
目录如下 Scala简介&快速入门 基础语法 变量 数据类型 流程控制 操作符重载 模式匹配 函数式编程基础 ... 隐式转换和隐式值 偏函数 高阶函数 闭包closure 柯里化函数 控制抽象 递归高级 Akka 介绍
大数据 Scala 示例 只是一个带有 BigData 测试示例的 repo。 入门 0)....一些隐式转换用于查询结果,考虑查看简单的包对象 如果您不熟悉示例中使用的 ScalaTest,请查看如果您不擅长 Scala,请查看
总结,本Scala笔记Markdown版本涵盖了从语言基础到集合操作的重要内容,适合初学者入门和有经验的开发者巩固知识。通过学习,开发者将能够掌握Scala的核心特性和编程技巧,从而更好地利用Scala进行后端开发。
同时,Scala的类型系统还允许我们创建复杂的类型构造,如类型类和隐式转换,这些在处理领域特定语言(DSL)时尤其有用。 在"ScalaStep"的学习过程中,你会接触到Actor模型,这是Scala对并发编程的一种独特解决方案...
- **Scala相关总结**:介绍Scala中的元组、隐式转换、函数式编程、样例类、柯里化、闭包以及Option的使用,Scala是大数据处理中重要的编程语言之一。 以上便是“超全大数据面试宝典-大数据面试有这套就够了.pdf”...
Spark SQL学习笔记 Spark SQL是Apache Spark平台下的一个模块,提供了一个编程抽象叫做DataFrame,并且作为分布式SQL查询引擎的作用。Spark SQL是Spark平台下的一个重要组件,主要用于处理结构化数据。 Spark SQL...