scala学习第四天
scala学习第四天
我是菜鸟我骄傲 发表于1年前
scala学习第四天
  • 发表于 1年前
  • 阅读 9
  • 收藏 2
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

package com.learn.scala

/**
  *
  * Scala既是面向对象,也是面向过程的编程语言
  * 函数,方法,过程类似,
  * 函数:不属于任何类,可以在代码内部定义。
  * 方法:属于某个类
  * 过程:没有返回值的函数或方法
  * Created by zhuqing on 2017/2/23.
  */
object Day5Fucntion {
  def main(args: Array[String]): Unit = {
    println(sum(1, 2)) //返回1+2的和3
    println(times(3)) //返回3的2倍6,第二个参数是默认值
    println(times(3, 3)) //返回3的3倍9,第二个参数没有使用默认值,自己设置为3
    println(sumAll(1,2))//返回1到2的和
    println(sumAll(1,2,3))//返回1到3的和
    val a = Array(1,2,3)

    /**
      * 变长参数不能像Java那样直接使用数组,但可在数组后面加上 :_*,告诉编译器你想把数组当序列使用
      */
    println(sumAll(a:_*))

    /**
      * 使用区间时,也要追加:_*
      */
    println(sumAll((1 to 10):_*))

  }

  /**
    * scala方法与Java类似,但是返回值时可以不用return, 最后一个表达式的值为返回值。
    * 也可以不用写返回类型,但是递归时必须写。
    * **我个人觉得的scala不用return可能是担心开发者的方法写的太大,因为如果没有return方法行太多的话容易乱,所以开发者就只能把方法写的短一些。
    *
    * @param a
    * @param b
    * @return
    */
  def sum(a: Int, b: Int) = {
    println("a=" + a)
    println("b=" + b)

    /**
      * 不需要return。
      * 如果想用也可用,建议不要用
      */
    a + b //返回a+b
  }

  /**
    * scala 方法可以设默认参数,类似Flex
    *
    * @param a
    * @param times 默认为2
    * @return
    */
  def times(a: Int, times: Int = 2): Int = {
    println("a=" + a)
    println("times=" + times)
    a * times
  }

  /**
    * scala 方法的变长参数:类型*,
    *
    * @param as
    * @return
    */
   def sumAll(as: Int*): Int = {
    var sum = 0;
    for (a <- as) {
      sum += a
    }
    sum
  }

  /**
    * scala 没有返回值的方法
    * 可以返回Unit=Java中的void
    * def proce(a:Int ,b:Int):Unit={
    * }
    * 也可以什么都不返回
    *   def proce(a:Int ,b:Int){
    *   }
    * @param a
    * @param b
    */
  def procedure(a:Int ,b:Int){
     println("hello world")
  }
}

 

标签: Scala
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 12
博文 208
码字总数 132689
×
我是菜鸟我骄傲
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: