Неліктен келесі екі функция ұқсас шығуды шығармайды?

Мен ұқсас өнімді шығаруды күтетін едім, бірақ орнына келемін

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 дәлелі ғана берілген.

Көптеген аргументтерге массивтерді жұмсау үшін appendcsv (fileName, args: _ *) сөзін қолдануға болады және бұл сіз күткен нәрсе.

14
қосылды
Жақсыырақ: Any * орнына args: String * пайдаланыңыз.
қосылды автор Debilski, көзі