次の2つの関数が同じ出力を生成しないのはなぜですか?

私は同じ出力が生成されると期待しますが、代わりに次のようになります

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")
3

1 答え

appendcsv(fileName、args)を実行すると、複数の引数の代わりにWrapedArrayを渡すことになります。実際、 appendcsv ではWrappedArrayの引数は1つのみであり、2つの文字列ではありませんでした。

appendcsv(fileName、args:_ *)を使って配列を複数の引数に費やすことができます。

14
追加された
さらに良い方法は、 Any * の代わりに args:String * を使用することです。
追加された 著者 Debilski,