zoukankan      html  css  js  c++  java
  • Scala:(2)控制结构

    (1)if else

    val s=if(x>0) 1 else -1

    (2)循环

    while(n>0){
    r=r*n
    n-=1
    }
    
    ///for 循环
    for(i <- 1 to n) r=r*i
    
    //until
    val s="Hello"
    var sum=0
    for(i <- 0 util s.length) sum+=s(i)//i的最后一个取值是s.length-1

    //多个for循环
    
    for(i <- 1 to 3;j<- 1 to 3) print((10*i+j) + “ ”)
    //将打印11 12 13 21 22 23 31 32 33


    //yield在for循环中的应用
    //for循环的循环体以yield开始,该循环会构造出一个集合
    for(i <- 1 to 10) yield i %3
    //生成Vector(1,2,0,1,2,0,1,2,0,1)
     

    (3)函数

    //定义一个函数
    def abs(x :Double)= if (x>=0) x else -x

    //大括号的函数定义
    def abs(x :Double)={ if (x>=0) x else -x }
    //函数参数
    
    def decorate(str: String , left: String ="[", right: String="]“)={
    left + str +right
    }
    
    //变长参数
    def sum(args: Int*)={
    var result=0
    for(arg<-args) result+=arg
    
    result
    }
    
    //当变长参数函数被调用时传入的是单个参数,那么该参数必须是单个整数,而不是一个整数区间。解决这个问题的办法是告诉编译器你希望这个参数被当作参数序列处理。追加:_*
    val s = sum(1 to 5:_*)

     (4)Unit是一个返回类型,相当于void

    def box(s: String): Unit={
    ....
    }

    (5)懒值 lazy

    //当val被声明为lazy时,它的初始化将被推迟,知道我们首次对它取值
    
    lazy val words=scala.io.Source.fromFile("/usr/share/dict/words").mkString
  • 相关阅读:
    Plot the figure of K-SVCR
    利用sklearn计算文本相似性
    djago 定义后台地址
    django admim后台不转义提交的html
    django 静态css js文件配置
    django后台的制作
    django 设置不带后缀的访问路径
    阿里云ECS服务器 常见问题(1)
    python 将word另存为txt
    python遍历某一位置所有文件夹中的文件
  • 原文地址:https://www.cnblogs.com/arbitrary/p/4818735.html
Copyright © 2011-2022 走看看