2011-06-16 65 views
-4

我是斯卡拉新手。我遇到過這個Scala程序,它在面試中被問到。斯卡拉麪試任務

什麼是下面的程序

object ApplyTo extends Application { 
    val k = "gWU`UAXYjT[ig\\\\eBWca"; 
    println(k map {c => (c - k.size).toChar toLower}) 
} 

請幫助的輸出。我對Scala非常陌生。我也不確定這個程序是否會編譯。

+8

你爲什麼不試試它? – 2011-06-16 19:59:22

+3

這個問題很愚蠢。我不懷疑有人知道爐旁的ascii表,但它的價值是什麼?最好是有一些簡單的算術測試或可以回答的問題。這就像*「好吧,我有字符g,什麼是ascii值減去20?」* – OscarRyz 2011-06-16 20:10:40

+0

@OscarRyz我認爲真正的問題是你是否知道map函數的作用,但是記住ascii表總體上是荒謬的和無用的。 – dave 2011-06-16 20:11:58

回答

12

輸出是[email protected]

地圖應用的操作可迭代的每一個成員。在這種情況下,對於字符串k中的每個字符,都會減去字符串的長度(在本例中爲20)。當你從char中減去一個int時,你會得到一個Int,這就是爲什麼需要toChar。最後,toLower確保輸出全部爲小寫。看起來他們只是測試你是否對地圖功能感到滿意,因爲其餘的都很簡單(假設他們不希望你記住ascii代碼......)

此外,scala的最佳特性之一是交互式控制檯,你可能想試試:)