为什么以下两个函数不能产生相同的输出?

时间:2011-10-28 04:04:33

标签: scala

我希望能够产生相同的输出,但我得到以下

string1,string2
WrappedArray(string1, string2)

  def appendcsv(fileName: String, args: Any*) {
    val fw = new FileWriter(fileName, true)
    val line = args.mkString(",")
    fw.write(line + "\r\n")
    fw.close()
  }
  def printcsv(fileName: String, args: Any*) {
    appendcsv(fileName, args)
  }
  appendcsv("test.csv", "string1", "string2")
  printcsv("test.csv", "string1", "string2")

1 个答案:

答案 0 :(得分:14)

因为当你执行appendcsv(fileName, args)时,你正在传递一个WrapedArray而不是你想象的多个参数。所以事实上appendcsv只收到了WrappedArray的一个参数,而不是两个字符串。

您可以使用appendcsv(fileName, args: _*)将数组扩展到多个参数,这将是您所期望的。