zoukankan      html  css  js  c++  java
  • scala note

    trait(特质)未被实现的方法,默认就是抽象的

    trait Logger {
      def log(message: String) // like an abstract method
    }

    implementing of derived class

    class CosoleLogger extends Logger {
      def log(message: String) { println(message) } // 可不需要override
    }

    注意: 当特质改变时, 有被mix-in的类都必须重新编译。

    在scala中应避免使用foreach,foreach没有返回值也就是Unit,在函数式编程中不返回任何结果的操作,很有可能进行有副作用的操作.

    for ( x <- 1 to 5 ) {
      // 无法返回任何值
      println(x)
    }
    //等同于foreach
    (1 to 5).foreach { x=> 
     //无法返回任何值
     println(x)
    }

    yield在scala中与c#意义完全不同,yield相当于c#中的select加上toList. 或toArray等等,是List还是Array这取决于原来的集合对象类型.

    map方法的作用很大,可将原来的值或对象进行转换或运算成另一个结果,特别是搭配Option[A]后在处理Null的问题上起了很大的作用,后面会提到.

    for ( x <- 1 to 5 ) yield x
    res51: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3, 4, 5)
    //等同于map (1 to 5).map(x => x)
    res52: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3, 4, 5)

    //结论:返回的结果res51和res52无二致
     
  • 相关阅读:
    拥有最多糖果的孩子
    求1+2+…+n
    网络-中间代理
    Header中的Referer属性表示
    ios13.4post请求出现网错错误 network err
    10.8&10.10
    9.23&9.27
    9.16&9.19
    校内模拟赛划水报告(9.9,9.11)
    男人八题 划水题解
  • 原文地址:https://www.cnblogs.com/jHenry/p/4280474.html
Copyright © 2011-2022 走看看