2011-10-28 31 views
3

我期望產生相同的輸出,而是我得到以下爲什麼以下兩個函數不能產生相同的輸出?

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

回答

14

因爲當你做appendcsv(fileName, args),你傳遞一個WrapedArray而不是多個參數,你會期望。所以事實上,appendcsv只收到WrappedArray的一個參數,而不是兩個字符串。

您可以使用appendcsv(fileName, args: _*)將數組擴展到多個參數,這將是您所期望的。

+2

更好的是:使用'args:String *'而不是'Any *'。 – Debilski

相關問題