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无二致
     
  • 相关阅读:
    io流
    JDBC-java数据库连接
    list接口、set接口、map接口、异常
    集合、迭代器、增强for
    math类和biginteger类
    基本包装类和System类
    正则表达式
    API-Object-equals方法和toString方法 Strinig字符串和StingBuffer类
    匿名对象 内部类 包 访问修饰符 代码块
    final 和 static 关键词
  • 原文地址:https://www.cnblogs.com/jHenry/p/4280474.html
Copyright © 2011-2022 走看看