当前位置: 首页 > news >正文

网站建设 联系我们青岛本地网站

网站建设 联系我们,青岛本地网站,如何添加插件到wordpress,南京网站设计公司兴田德润放心Scala模式匹配和类型系统 1.模式匹配比java中的switch case强大很多#xff0c;除了值#xff0c;类型#xff0c;集合等进行匹配#xff0c;最常见的Case class进行匹配#xff0c;Master.scala有大量的模式匹配。 Case _表示不满足上面的所有情况的体验除了值类型集合等进行匹配最常见的Case class进行匹配Master.scala有大量的模式匹配。 Case _表示不满足上面的所有情况的体验举个例子 def bigdata(data: String){ data match{ case Spackprintln(WOW!!!) case Hadoopprintln(OK) case _println(sorry) } } bigdata(Spack)    //Wow!!! 可以在case里面加入条件判断 def bigData(data:String) {     data match{         case Sparkprintln(Wow!!)         case hadoop println(ok)         case _ if data Flink println(Flink)         case _println(other)     } }     bigdata(Flink)  //Flink  对类型进行匹配 def exception(e: Exception){ e match{     casefileException:FileNotFoundException println(File not fount : fileException)     case _:Exceptionprintln(Exception ,e) } }                    exception(new FileNotFoundException(oop!!!))    // File notfount : java.io.FileNotFoundException: oop!!!  对集合进行匹配 def data (array:Array[String]) {   arraymatch{     case Array(Scala)println(Scala)     caseArray(spark,hadoop,flink)println(spark : hadoop : flink : )     case Array(Spark,_*)println(Spark...)     case _println(Unkown)     } }                                                // data: (array: Array[String])Unit data(Array(Spark))                              // Spark... data(Array(Scala))                              // Scala data(Array(Scala,Spark,kafaka))             // Scala : Spark : kafaka : 对class进行匹配 scala case class Person(name: String) defined class Person   case classPerson(name: String) Person(Spark)                                   // res0: worksheetest.Person Person(Spark) 1case class 相对于java中的beanval 只有个get 2实例自动调用伴生对象 class Person case classWorker(name: String,salary: Double) extends Person case classStudent(name: String,score: Double) extends Person   def sayHi(person:Person) {     personmatch{         case Student(name,score)println(I am Student :name ,score)         case Worker(name,salary)println(I am Worker :name ,salary)         case _ println(Unknown)     } }                                                 // sayHi: (person: worksheetest.Person)Unit   sayHi(Worker(Worker,6.5))                       // I am Worker :Worker,6.5 sayHi(Student(Student,6.5))                     // I am Student :Student,6.5   DeployMessages源码中  caseclassExecutorStateChanged(      appId:String,      execId:Int,      state:ExecutorState,      message:Option[String],      exitStatus:Option[Int]) extends DeployMessage   case class 使用时会生成很多对象 case object 本身就是一个实例全局唯一   scala 的类型参数重磅的东西最好的难点太有用了在所有的spark源码中到处都是 例RDD[T: ClassTag]   泛型参数本身是有类型scala的泛型 泛型类和泛型函数 class Person[T](valcontent:T) {     def getContent(id: T) id _ content } val p newPerson[String](Spark)               // p  :worksheetest.Person[String] worksheetest$Person50134894 p.getContent(Scala)                             // res0: String Scala _ Spark 泛型前面有和-   * scala def mkArray[T : ClassTag](elems: T*) Array[T](elems: _*) * mkArray: [T](elems: T*)(implicit evidence$1:scala.reflect.ClassTag[T])Array[T] * * scala mkArray(42, 13) * res0: Array[Int] Array(42, 13) * * scala mkArray(Japan,Brazil,Germany) * res1: Array[String] Array(Japan, Brazil, Germany) * }}}   协变如果S是T的子类型并且List[S]也是List[T]的子类型,那么成为协变 class Person[T] //强制定义为协变类型   C[T]如果A是B的子类那么C[A]是C[B]的子类。逆变范围小C[-T]如果A是B的子类那么C[B]是C[A]的子类。协变 范围大C[T]无论A和B是什么关系C[A]和C[B]没有从属关系。 注阅读Spark源码 RDD、HadoopRDD、SparkContext、Master、Worker的源码并分析里面使用的所有的模式匹配和类型参数的内容。  总结 T % Writable: ClassTagT可以隐身转换为Writable类型ClassTag在上下文中注入隐式值 对于Manifest Context Bounds[T : Manifest] 进化为ClassTag了T:ClassTag  运行时传递完整的类型上下文信息 Seq[Dependency[_]] 相当于Seq[Dependency[T]]  另外有段重要注释 {{{ * scala def mkArray[T : ClassTag](elems: T*) Array[T](elems: _*) * mkArray: [T](elems: T*)(implicit evidence$1: scala.reflect.ClassTag[T])Array[T] * * scala mkArray(42, 13) * res0: Array[Int] Array(42, 13) * * scala mkArray(Japan,Brazil,Germany) * res1: Array[String] Array(Japan, Brazil, Germany) * }}} * 表明了ClassTag 的隐式转换机制。            posted on 2016-01-21 01:32 hard-working 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/chenggongdeni/p/5147084.html
http://www.pierceye.com/news/686762/

相关文章:

  • 网站怎么建设可以发图评论网站建设制作公
  • 做销售的网站设计公司是做什么的
  • 建设专业网站的利弊海淀区seo招聘信息
  • 吴江区住房与建设局网站网站开发怎么对接客户
  • frontpage2007网站建设网站开发需要redis
  • 国内做网站多少钱ui中有哪些做的好看的网站
  • 金湖建设工程质量监督网站网页设计 网站建设 哪个好
  • 适合做外链的网站梧州论坛红豆思辨
  • 永城网站设计公司wordpress 获取父分类
  • 网站开发语言是什么东莞营销网站建设价格
  • 外贸公司访问国外网站中学生做的网站有哪些方面
  • 南城网站建设公司信息wordpress怎样显示文章全部列表
  • 做推广什么网站便宜企业网站管理系统湖南岚鸿
  • 电影下载网站 怎么做flash翻页效果网站模板
  • 社交网站开发语言河北建设工程信息网首页
  • 上海营销型网站建设公司wordpress 自己做页面
  • 网站布局选择临淄信息网手机版
  • 怎样申请网站呢注册商标怎么注册商标
  • 网站地址英文不相关的网站做单项链接可以吗
  • 怎么做网站超链接wordpress 主题 设置
  • 手机电影网站建设如何做网站域名备案
  • 重庆手机网站推广价格网络营销论文参考文献
  • 如何给网站添加搜索关键字做流量网站有收入吗
  • 购物网站的英文如何不让百度收录网站
  • 上海定制网站建设公司哪家好建立公司官网
  • jsp电影网站开发教程滁州网站建设梦天堂
  • 网站建设哪个好一些网站服务器证书有问题
  • 广东省广州市白云区钟落潭镇优化什么建立生育支持政策体系
  • wordpress+代码质量哈尔滨百度seo代理
  • 北京模板网站建设全包中国招标与采购网官网