Scala函数注意事项和细节

Scala创建函数的注意事项和细节

  1. 函数的形参列表可以是多个, 如果函数没有形参,调用时 可以不带()
  2. 形参列表和返回值列表的数据类型可以是值类型和引用类型
  3. Scala中的函数可以根据函数体最后一行代码自行推断函数返回值类型
  4. Scala函数的形参,在声明参数时,直接赋初始值(默认值)
  5. 使用return关键字时要明确返回类型
  6. scala 函数的形参默认是val的,因此不能在函数中进行修改
  7. 递归函数未执行之前是无法推断出来结果类型,在使用时必须有明确的返回值类型
  8. Scala函数支持可变参数
object Test {
  def main(args: Array[String]): Unit = {
    method01

    val dog = new Dog
    method02(dog)
    println(dog.name)

    method03

    println(method05())`

    println(method06(4))
    method07(10, 1, 2, 3, 4, 5)
  }
  **//1,函数的形参列表可以是多个, 如果函数没有形参,调用时 可以不带()**
  def method01 = {

  }

  **//2,形参列表和返回值列表的数据类型可以是值类型和引用类型**
  class Dog {
    var name = ""
  }

  //传入Dog
  def method02(dog: Dog): Dog = {
    dog.name = "小明"
    dog
  }

  **//3,Scala中的函数可以根据函数体最后一行代码自行推断函数返回值类型。
  // 那么在这种情况下,return关键字可以省略**
  def method03 {
    println("a")
    123 //返回Int类型
  }

  // 注意:使用return关键字时要明确返回类型
  def method04 {
    return 1 //返回Unit 也就是()
  }

  **//5,Scala函数的形参,在声明参数时,直接赋初始值(默认值),
  // 这时调用函数时,如果没有指定实参,则会使用默认值。如果指定了实参,则实参会覆盖默认值。**
  def method05(f: String = "method05") = {
    f
  }

  **//7,scala 函数的形参默认是val的,因此不能在函数中进行修改.**


  **//8,递归函数未执行之前是无法推断出来结果类型,在使用时必须有明确的返回值类型**
  def method06(n: Int): Int = {
    if (n == 1 || n == 2) {
      1
    } else {
      method06(n - 1) + method06(n - 2)
    }
  }

  **//9,Scala函数支持可变参数
  //注意事项:
  //1,args 是集合
  //2,args 只能写在最后**
  def method06(args: Int*) { //0 到 n多个参数

  }

  **//1 到 n 多个参数**
  def method07(n1: Int, args: Int*): Unit = {
    println("args.length:" + args.length)
    for (i <- args) {
      i
    }
  }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值