大数据系列修炼-Scala课程55

大数据系列修炼-Scala课程55

核心内容:
1、Scala中Infix Type操作代码实战

1、Scala中Infix Type操作代码实战

1>中值类型常用在泛型当中和中值表达式当中。
2>Infix Type就是中值类型,所谓中值类型就是带有两个参数的类型;之所以叫做中值类型,是因为类型的名称
写在了两个参数的之间,这种方式具有阅读性。
3>中值类型在实际使用的时候,类型参数写在这两个参数的具体值或具体实例之前。
4>Scala当中的表达式都是方法,中值表达式就是具体的数据写在了表达式的两侧。
5>模式匹配、case class、中值类型常一起使用。

实例程序1:

object App6 
{   
    def main(args:Array[String]):Unit=
    { 
       val aa:Add[String,String] = new Add[String,String]("Spark","Hadoop")
       //下面是中值类型的表示方法
       val bb:Double Add Double = new Add[Double,Double](100.0,100.0)
    }   
}
//所谓中值类型,就是这个类型含有两个参数:在实际使用的时候,这两个参数写在类型的两侧
case class Add[F,S](val first:F,val second:S)
{
   println(first+"\t"+second)  
}

实例程序2:

object App6 
{   
    def main(args:Array[String]):Unit=
    { 
       //中值表达式和模式匹配一起使用
       val aa = new Add("Java","Scala")
       aa match
       {
         //case Add(first,second) => println(first+"\t"+second)
         //中值类型的表达方式更具有阅读性
         case first Add second => println(first+"\t"+second) //Java Scala
       }
    }   
}
//所谓中值类型,就是这个类型含有两个参数:在实际使用的时候,这两个参数写在类型的两侧
case class Add(val first:String,val second:String)

实例程序3:

object App6 
{   
    def main(args:Array[String]):Unit=
    { 
       //列举出一个中值表达式
       val list = List()
       //中值表达式(函数)的两侧含有数值 
       val listNew = "Spark"::"Hadoop"::list //从右向左结合的
       println(listNew.mkString("[", "\t", "]")) 
    }   
}

深度思考1:中值类型只有和泛型或者模式匹配共同使用,才具有意义!

object App2
{
  def main(args : Array[String]): Unit =
  {
      var aa:String Add Double = Add("Spark",100.0)  //意义1
      aa match
      {
        case  name  Add  score => println(name+"\t"+score)  //意义2
      }
  }
}
case class Add[F,S](name:F,score:S) //注意:Add不是泛型类也可以,只要带有两个参数就行

如有问题,欢迎留言指正!

你可能感兴趣的:(scala,大数据)