可能重複:
「eval」 in ScalaScala代碼數據
廉博士在他的演講http://www.youtube.com/watch?v=LH75sJAR0hc在30分鐘的時候,他開始在Scala中談到實用的風格,他給出了這樣的例子
class Car {
def turn(direction: String) = {
println("turning " + direction)
}
}
val car = new car
car turn "left"
,然後他說,最後一行可以被理解從數據文件中進行評估。所以,數據變成代碼,代碼變成數據。
如何斯卡拉支持呢?它有eval
功能嗎?
聽說過一個哈希表的?將你的字符串命令放在一個散列表中,並將相應的動作(函數)作爲值。 – Marcin
+ Marcin,這是一個實現細節。你還在寫一個口譯員。有很多方法可以做到這一點。 –
@DonStewart我認爲這是語言的濫用來形容每一個接受字符串或令牌來觸發的行爲作爲解釋功能。無論如何,用一流功能的語言來實現這類事情並不是一件簡單的事情。 – Marcin