第58讲:Scala中Abstract Types实战详解
这一讲我们来学习下抽像类型。让我们看下代码
package scala.learn
import scala.io.BufferedSource
import scala.io.Source
trait Reader{
type In
type Contents
def read(in:In):Contents
}
class FileReader extends Reader{
type In = String
type Contents = BufferedSource
override def read(name:In) = Source.fromFile(name)
}
object test58{
def main(args:Array[String]){
val fileReader = new FileReader
val content = fileReader.read("E:\\WorkHard\\BIGDATA\\spark\\sparktest\\scala.txt")
for (line <- content.getLines()){
println(line)
}
}
}
首先,在Reader特质中,定义了抽像类型In和Contents,并不指明具体类型。
在FileReader特质中,继承Reader,并定义具体的抽像类的类型,并重写read函数。
分享下更多的scala资源吧:
百度云盘:http://pan.baidu.com/s/1gd7133t
微云云盘:http://share.weiyun.com/047efd6cc76d6c0cb21605cfaa88c416
360云盘: http://yunpan.cn/cQN9gvcKXe26M (提取码:13cd)
信息来源于 DT大数据梦工厂微信公众账号:DT_Spark
关注微信账号,获取更多关于scala学习内容
第58讲:Scala中Abstract Types实战详解的更多相关文章
- Scala 深入浅出实战经典 第58讲:Scala中Abstract Types实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...
- 第56讲:Scala中Self Types实战详解
今天学习了self type的内容,让我们来看下代码 package scala.learn class Self{ self => val tmp = "Scala" ...
- Scala 深入浅出实战经典 第57讲:Scala中Dependency Injection实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Scala 深入浅出实战经典 第55讲:Scala中Infix Type实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...
- Scala 深入浅出实战经典 第54讲:Scala中复合类型实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Scala 深入浅出实战经典 第53讲:Scala中结构类型实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- 第57讲:Scala中Dependency Injection实战详解
本讲我们来学习下依赖注入.让我们从代码出发: package scala.learn trait Logger {def log (msg:String)}trait Auth { auth:Log ...
- 第55讲:Scala中Infix Type实战详解
今天学习了Infix type的知识,来看看实战代码: def main(args:Array[String]){ object log { def >>:(data:String) ...
- 第54讲:Scala中复合类型实战详解
今天学习了scala的复合类型的内容,让我们通过实战来看看代码: trait Compound_Type1trait Compound_Type2class Compound_Type extends ...
随机推荐
- Git使用心得
1.git是分布式的版本控制(有本地仓库)git 先对安全 2.git基于元数据 svn是基于目录的 3.本地的提交分为三个步骤(提交本地仓库先提交暂存区再提交本地仓库) 工作区 ...
- 在Android项目中引入MuPdf
由于公司手机App要加入一个附件查看功能,需要查看PDF文件,在网上找了许多第三方工具,最后选择了MuPDF. 更多第三方工具可以查看大神总结的:http://www.cnblogs.com/poke ...
- aspx页面,中文乱码解决方案
由于文件编码方式编码方式不统一出现样式中文乱码解决方案: 今天碰到的问题:页面字体样式设置的'微软雅黑',可页面没引用.我调试看到样式出现中文乱码了 这种问题,就需要转换文件的编码方式,如下两步即可解 ...
- Android开发学习---sharedpreference的使用
在前面文章中,为了使数据回显,使用的技术思路是,首先,将数据持久化写到ROM或者SDCard中,其中name和password以":"分隔;然后,将数据记取出来,再用split方法 ...
- windows下C++环境的配置
方法一--VS: 使用windows开发神器visio studio.这种方法比较简单,直接下载一个最新的vs安装就行.不单单是C++,C.C#.VB等都可以开发. 方法二--只安装C++编译器: 最 ...
- JS产生随机数
<script> function GetRandomNum(Min,Max){ var Range = Max - Min; var Rand = Math.random() ...
- 百度自动发贴,登录很顺利的模拟实现,但发贴攻关失败,能力有限,追JS过程中颇为痛苦
攻关失败,且短期内看不到希望,看不到方向,且越来越焦急,目前已知的是,用根据用户的鼠标事件以一定的规则结合其他数据,服务器以这些数据验证是否为真正的手动发贴. 不过闲暇时实现了百度贴吧的自动签到. 较 ...
- redirect和forward
1.重定向 <mvc:view-controller path="/" view-name="redirect:/admin/index"/>即如果 ...
- Ubuntu15下mysql5.6.25解决不支持中文的办法
apt-get install 安装的,不是源码包安装的mysql 1 修改mysql的配置文件 /etc/mysql/conf.d/mysql.cnf 在[mysql]的下方加入如下语句:(注:这个 ...
- Word论文写作如何实现公式居中、编号右对齐
第一步:插入表格 在公式所在行居中插入一行三列的表格,具体操作为: a.设置行居中,快捷键Ctrl+E: b.插入->表格->3×1的表格: 2 第二步:修改表格属性 新插入的表格三列等宽 ...