码迷,mamicode.com
首页 > 其他好文 > 详细

8-8 特殊的函数调用形式

时间:2020-12-03 12:17:31      阅读:6      评论:0      收藏:0      [点我收藏+]

标签:形式   stream   array   rgs   类型   str   特殊   含义   填充   

1.重复参数

  要表示这样一个重复参数,需要在参数的类型之后加上一个星号(*)。

def main(args: Array[String]): Unit = {
  echo("hello", "world!")
}

def echo(args: String*) = {
  for (arg <- args) println(arg)
}

  在函数内部,这个重复参数的类型是一个所声明参数类型的Array。但是不能直接将当做重复参数传入,需要在数组实参后面加上冒号和一个_*符号

def main(args: Array[String]): Unit = {
  val arr = Array("What‘s", "up", "doc?")

  //echo(arr) 类型不符

  echo(arr: _*)
}

def echo(args: String*) = {
  for (arg <- args) println(arg)
}

 

2.带名字的参数

  用带名字的参数发起调用,实参可以在不改变含义的前提下交换位置。

def main(args: Array[String]): Unit = {
  val sp = speed(time = 10, distance = 100)
  println(sp)
}

def speed(distance: Float, time: Float) = distance / time

 

3.缺省参数值

  有缺省值的参数可以不出现在函数调用中。

def main(args: Array[String]): Unit = {
  printTime()
}

def printTime(out: java.io.PrintStream = Console.out) = {
  out.println("time = " + System.currentTimeMillis())
}

  缺省参数跟带名字的参数放在一起时尤为有用。

def main(args: Array[String]): Unit = {
  //显式地给出输出流,时间除数填充为默认值
  printTime2(out = Console.err)
  
  //显式地给出时间除数,输出流填充为默认值
  printTime2(divisor = 1000)
}

def printTime2(out: java.io.PrintStream = Console.out, divisor: Int = 1) = {
  out.println("time = " + System.currentTimeMillis() / divisor)
}

  

 

8-8 特殊的函数调用形式

标签:形式   stream   array   rgs   类型   str   特殊   含义   填充   

原文地址:https://www.cnblogs.com/noyouth/p/14056135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!