美文网首页
Scala 符号化

Scala 符号化

作者: 冰冰大象 | 来源:发表于2018-03-06 11:23 被阅读38次
    1. “<-”符号:这个符号<-用在什么地方,比如用于for循环,
      <-用于遍历集合对象(可遍历对象)B,在每次遍历的过程中,生成一个新的对象A,这个A是val,而不是var,然后对循环体中对A进行处理,<-在Scala中称为generator。 不需要显式的指定A的类型,因为Scala使用自动推导的方式根据B的元素类型得出A的类型

       for (arg <- args) //用于循环      
       println(arg)
       for (i <- 0 to 2)  
       print(greetStrings(i))
      
    2. “->”方法是所有Scala对象都有的方法,比如A->B,->方法调用的结果是返回一个二元的元组(A,B)
      这个符号用于什么地方,比如map映射
      Map(映射)是一种可迭代的键值对(key/value)结构。
      // Map 键值对演示
      val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")//此为Map 映射,看成字段就行
      map映射与map函数的区别
      同时有一个小小的不同:
      如果刚接触map函数会让我们特别的困惑和难懂。
      map函数:
      函数式编程都有一个map函数,map函数就像一个加工厂,传入一个函数,利用这个函数将集合里的每一个元素处理并将结果返回。
      aList.map(processFunc)//就这么简单,aList中的每一个元素将会变成processFunc的返回值。 这个processFunc一般都是匿名函数,因为用过一次后就用不到了。

       val l = List(1,2,3)
       var ll = l.map(x => x*x)//返回 ll=(1,4,9)
      
    3. "=>"这个其实是Scala的匿名函数。
      左边是参数,右边是函数体。在我们印象中,函数体一般都是在大括号中,而这里真让我们难以理解。
      总之:方法参数=> 方法体这时候我们需要明白这是匿名函数
      这就是Scala不走寻常路,而且其它的很多地方,都是这个样子。比如下面的函数定义等等。这里先给大家认识下Scala的匿名函数var ll = l.map(x => x*x)//x=>x*x 就是匿名函数
      对于右箭头,还有一个地方用到就是
      匹配模式语句case与后面表达式的分隔符
      例如

         a match {
       case 1 => "match 1"
       case _ => "match _"
       }
      
    4. 进一步补充:
      :::运算符
      :::(三个冒号)表示List的连接操作,比如:
      val a = List(``1``, 2``)
      val b = List(``3``, 4``)
      val c = a ::: b
      其中a,b保持不变,a和b连接产生一个新表List(1,2,3,4),而不是在a上面做add操作。
      Scala中的List不同于Java的List,Java声明final List javaList,表示javaList一旦初始化,那么不能再为它赋值,但是它其中的元素可以变化,
      ::运算符
      ::(两个冒号)表示普通元素与List的连接操作,比如:
      val a = 1
      val b = List(3, 4)
      val c = 1 :: b
      则c的结果是List(1,3,4),需要注意的是,1:: b操作,::是右侧对象的方法,即它是b对象的方法,而::左侧的运算数是::方法的参数,所以1::b的含义是b.::(1)

    5. “_ ”下划线比较多 请参考http://www.jianshu.com/p/52b933ecbc06

    相关文章

      网友评论

          本文标题:Scala 符号化

          本文链接:https://www.haomeiwen.com/subject/lwdlfftx.html