scala 函数

scala中变量和函数一视同仁,都是平等地位。
变量可以等于函数,函数也可以等于变量。

scala> //----------def--------------

scala> def f2=println
f2: Unit

scala> def f2=println _
f2: () => Unit

scala> var f2=println

f2: Unit = ()

scala> var f2=println _
f2: () => Unit = <function0>


scala> def f3(p1:String,p2:Int=30)=p1+p2       --参数带默认值的情况
f3: (p1: String, p2: Int)String

scala> f3("Spark")
res4: String = Spark30

scala> f3(p2=100,p1="Scala")       --参数顺序可变
res5: String = Scala100



--参数个数不确定的函数
scala> def sum(numbers:Int*) = {var result=0; for(i<-numbers){result+=i}; result}    --这里默认返回代码块的最后一行result的值
sum: (numbers: Int*)Int

scala> sum(1,2,3)
res6: Int = 6

scala> sum(1,2,3,4,5,6)
res7: Int = 21

scala> sum(1 to 100)             --1 to 100是一个range集合,定义的参数是Int,所以报错
<console>:9: error: type mismatch;
found   : scala.collection.immutable.Range.Inclusive
required: Int
              sum(1 to 100)
                    ^

scala> sum(1 to 100: _*)      --非常重要,将每个元素提取出来: _*,冒号和下划线中间有空格
res9: Int = 5050

-----------------------------------------------------

//无参数的函数
  def doWhile(){
    var line=""
    do{
      line=readLine()
      print("input:"+line);
    }while(line!="")
  }
  
//有参数的函数
  def looper(x:Long,y:Long):Long = {
    var a=x
    var b=y
    while(a!=0){
      var tmp=a
      a=b%a
      b=tmp
    }
    b
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值