scala实战高手****第13课scala模式匹配实战和spark源码鉴赏

sunrunzhi sunrunzhi     2023-01-23     803

关键词:

package com.dt.spark.scala.bascis
 
class Dataframework 
case class Computerframework (name:String,popular:Boolean) extends Dataframework 
case class Storgeframework (name:String,popular:Boolean) extends Dataframework 
 
object helloPatternMatch 
  def main(args: Array[String]): Unit = 
   // getSalary("hadoop")
   // getSalary("flink")
   // getSalary("scala")
    
    getSalary("scalasafdas",6)
    getMatchType(100.0)
    getMatchType("java")
    getValue("spark",Map("spark"->"the hosttest!!"))
    
    getBigDataType(Computerframework("spark",true))
 
    getMatchTypeCollection(Array("scala"))
    
  
  
  def getSalary(name:String,age:Int)
    name match
      case "spark" => println("$ 15k")
      case "hadoop" =>  println("$ 12k")
      case _ if name == "scala" =>  println("$ 14k")
      case _ if name == "flink" =>  println("$ 13k")
      case _name if age >= 5 =>  println(" name : "+ _name +"  $ 16k")
     
      case _ =>  println("$ 8k")
    
  
  
  def getMatchType(msg:Any)
    msg match 
      case i: Int => println("integer")
      case s:String => println("String")
       case s:Double => println("Double")
       case array:Array[Int]=>  println("Array")
       case _ => println("other type")
     
  
  
   def getMatchTypeCollection(msg:Array[String])
    msg match 
      case   Array("scala") => println("1   element")
      case  Array("scala","java")=> println("2  element")
       case  Array("spark",_*) => println("many element")
       case _ => println("other element")
     
  
  
 def getBigDataType(data:Dataframework)
   data match 
     case Computerframework(name,popular) =>  println("name:  "+name+" "+ popular)
     case Storgeframework(name,popular) =>   println(name+" "+ popular)
     case _ =>   println("other types")
   
   
   
   
 
   
  def getValue(key:String,content: Map[String,String])
    content.get(key) match 
      case Some(value) => println(value)
      case None => println("none")
    
  
  
  

 
 
 
  结果
  
  
  
   name : scalasafdas  $ 16k
Double
String
the hosttest!!
name:  spark true
1   element

  

scala实战高手****第14课scala集合上的函数式编程实战及spark源码鉴赏

packagecom.dt.spark.scala.bascisobjectFunctional_Itearal defmain(args:Array[String]):Unit=     valrange=1to10   vallist=List(1,2,3,4,5)    查看详情

scala实战高手****第7课:零基础实战scala面向对象编程及spark源码解析

/** * 如果有这些语法的支持,我们说这门语言是支持面向对象的语言 * 其实真正面向对象的精髓是不是封装、继承、多态呢? * --->肯定不是,封装、继承、多态,只不过是支撑面向对象的 * 一些... 查看详情

《java8实战》读书笔记13:java8与scala(代码片段)

《Java8实战》读书笔记13:Java8与Scala第15章面向对象和函数式编程的混合:Java8和Scala的比较15.1.1你好,啤酒15.1.2基础数据结构:List、Set、Map、Tuple、Stream以及Option1.创建集合2.不可变与可变的比较3.使用集合4.元组5.S... 查看详情

13scala模式匹配

1、模式匹配的基础语法2、对类型进行模式匹配3、对Array和List的元素进行模式匹配4、caseclass与模式匹配5、Option与模式匹配1、模式匹配的基础语法  Scala提供了matchcase语法,即模式匹配。替代java的switchcase。  两者不同,java... 查看详情

scala零基础教学61-80

第61讲:Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析 第62讲:Scala中上下文界定内幕中的隐式参数与隐式参数的实战详解及其在Spark中的应用源码解析/***Scala中上下文界定内幕中的隐式参数与隐... 查看详情

scala实战

Scala实战Scala读取控制台输入并打印出来Scala求最大公约数 查看详情

如何在Scala中模式匹配多个值?

】如何在Scala中模式匹配多个值?【英文标题】:HowtopatternmatchmultiplevaluesinScala?【发布时间】:2011-11-0419:13:41【问题描述】:假设我想使用相同的代码处理来自远程服务的多个返回值。我不知道如何在Scala中表达这一点:codematchca... 查看详情

spark初识

1、Scala安装第一步:进入Scala官网,下载scala-2.13.1版本。Scala官网地址第二步:通过Mobaxtrem将scala-2.13.1.tgz上传CentOS-7服务器的/usr/local目录。第三步:CentOS-7安装Scala环境,请执行如下步骤:[root@Hadoop3-master... 查看详情

scala实战

1.Eclipse中设置scala调试器scala的调试器要选择ScalaApplication(new debuger)Launcher;开始选择图省事,选择了一个字母少的,亲切的Launcher:ScalaJVMLauncher;但是后来发现这个Launcher只能运行,但是无法在调试过程中获取变量值。2.jav... 查看详情

spark记录-scala模式匹配

Scala模式匹配模式匹配是Scala函数值和闭包后第二大应用功能。Scala为模式匹配提供了极大的支持,处理消息。模式匹配包括一系列备选项,每个替代项以关键字大小写为单位。每个替代方案包括一个模式和一个或多个表达式,如... 查看详情

第43讲:scala中类型变量bounds代码实战及其在spark中的应用源码解析

类型变量的界定:类型变量的上界,类型变量的下界。上界就是类型必须是界定类型的子类,看如下示例:package com.dt.scala.type_parameterization// 我们需要定义一个泛型类Pair,泛型类中有一个bigger方法,用来比较传入的参数/... 查看详情

第45讲:scala中contextbounds代码实战及其在spark中的应用源码解析

与viewbounds一样contextbounds(上下文界定)也是隐式参数的语法糖我们使用viewbounds的方式的写法如下:class Pairs[T <% Comparable[T]](first: T,second:T){   def bigger ={   & 查看详情

快学scala第14章----模式匹配和样例类

...的switch,不会有意外掉入到下一个分支的问题。如果没有模式能够匹配,会抛出MatchError。可以用case_模式来避免。模式可以包含一个随意定义的条件,称作守卫。你可以对表达式的类型进行匹配;优先选择模式匹配而不是isInstanc... 查看详情

scala基础知识

...式值函数类继承特质类型apply方法单例对象函数即对象包模式匹配样本类try-catch-finally关于这节课最初的几个星期将涵盖基本语法和概念,然后我们将通过更多的练习展开这些内容。有一些例子是以解释器交互的形式给出的,另... 查看详情

scala模式匹配详解

...映射理解Scala的函数式编程思想 Scala中有一个非常强大的模式匹配机制,应用也非常广泛,例如:判断固定值类型查询快速获取数据1简单模式匹配一个模式匹配包含了一系列备选项,每个备选项都开始于关键字case。且每个... 查看详情

Spark Scala Dataframe:删除第 n 条记录

】SparkScalaDataframe:删除第n条记录【英文标题】:SparkScalaDataframe:DeletenthRecord【发布时间】:2016-04-0504:46:13【问题描述】:是否可以在不使用collect的情况下从数据帧中删除第n行,然后再转换回数据帧。我想避免使用collect,因为... 查看详情

Scala Slick模式特征中的“覆盖def *”是啥

】ScalaSlick模式特征中的“覆盖def*”是啥【英文标题】:Whatis\'overridedef*\'inScalaSlickschematraitScalaSlick模式特征中的“覆盖def*”是什么【发布时间】:2021-12-1812:21:13【问题描述】:caseclassFruit(apple:String,banana:String)traitAppleComponentself:Ha... 查看详情

嵌入 scala 2.13.x REPL

】嵌入scala2.13.xREPL【英文标题】:Embeddingscala2.13.xREPL【发布时间】:2020-05-0506:04:27【问题描述】:对于Scala2.12.x,可以使用scala.tools.nsc.interpreter.ILoop嵌入ScalaREPL。对于Scala2.13.x,scala.tools.nsc.interpreter.ILoop已被删除。如何嵌入Scala2.1... 查看详情