1. 对象的apply方法

    (1)对象调用apply()方法,可省略成()

    (2)string对象的apply方法返回第n个字符

    "hello"(4)  //‘o’
  2. if语句的返回值

    java把语句和表达式看做2个东西,语句执行动作,表达式返回值。eg:if语句没有返回值。而scala中,大部分的语法结构都有返回值。

    (1)if..else..语法结构的返回值 = if/else后面跟随的表达式的值

    scala> val s = if(1>0) 1 else -1
    res0: Int = 1
  3. for

    (1)scala中没有for(初始值;条件;更新变量)结构的循环

    (2)如需这样的循环,2种选择:while / for(i <- 1 to n)

    scala> for(i <- 1 to 5) print(i+",")
    1,2,3,4,5,

(3)scala的for由3部分组成:生成器,守卫,循环体

生成器:变量 <- 表达式

守卫:if语句

循环体:循环的逻辑,如果循环体以yield开始,则for的返回值时一个集合

```scala
for(i <- 1 to 2; j <- 1 to 3)
print(i*j+",") //1,2,3,2,4,6, //带守卫的for
for(i <- 1 to 2; j <- 1 to 3 if j!=2)
print(i*j+",") //1,3,2,6 //yield构建集合
for(i <- 1 to 10)
yield i % 3 //Vector(1, 2, 0, 1, 2, 0, 1, 2, 0, 1)
```
  1. 函数

    //1.默认参数
    def decorate(value:String,left:String="[",right:String="]"): String ={
    left + value + right
    }
    decorate("haha") //[haha] //2.可变参数
    def sum(args:Int*): Int ={
    var sum=0
    for(i <- args)
    sum += i
    sum
    }
    sum(1 to 5: _*) //15q
  2. 懒值

    (1)懒值在第一次被调用时初始化,如果没被使用过,则不去初始化

    (2)每次访问懒值时,scala都会调用一个方法来以线程安全的方式检查该值是否被初始化

    val words = scala.io.Source.fromFile("/home/lj/aaa.txt")         //words被定义时赋值
    def words2 = scala.io.Source.fromFile("/home/lj/aaa.txt") //每次使用words2时被调用
    lazy val words3 = scala.io.Source.fromFile("/home/lj/aaa.txt") //懒值在首次使用时初始化
  3. 异常处理

    scala没有受检异常---不需要声明函数或方法抛出某种异常。try代码快返回Nothing类型

      var in = new URL("http://www.baidu.com").openStream()
    try{
    //TODO
    }finally {
    in.close()
    }

最新文章

  1. php中防止SQL注入的方法
  2. Mysql执行Update操作时会锁住表
  3. 我的Linux书架
  4. 那些著名或非著名的iOS面试题-前编
  5. *[topcoder]LittleElephantAndBalls
  6. 【HDU 4352】 XHXJ&#39;s LIS (数位DP+状态压缩+LIS)
  7. python常用数据结构的常用操作
  8. Django 1.6 基于类的通用视图
  9. mvc of js
  10. 回溯法、数独与N阶可达问题
  11. 如何禁止chrome浏览器http自动转成https 【转】
  12. Python随笔--正则表达式匹配IP
  13. Linux 安装Python37
  14. windows配置java运行环境
  15. 个人小爱好:Operating System:three easy pieces---第6章第4节_担心并发问题?
  16. TrueCrypt 7.1a Hashes
  17. QOpenGLFunctions的相关的使用(1)
  18. VS Code使用Git管理代码
  19. HDOJ 4869 Turn the pokers
  20. mybatis 之 parameterType=&quot;java.util.List&quot;

热门文章

  1. AXIOM解析XML 详细原理
  2. Codeforces Round #123 (Div. 2)
  3. UVa 1339 Ancient Cipher --- 水题
  4. WinMain初始化详细过程以及消息循环
  5. java编程acm基础
  6. 排序算法总结(一)插入排序【Insertion Sort】
  7. Java Web学习(1): 客户端请求、服务器响应及其HTTP状态码
  8. js类型判断
  9. 整合UMDH结果的一个小工具
  10. A Flock Of Tasty Sources On How To Start Learning High Scalability