2011-09-15 31 views

回答

6

儘管遠遠稱不上理想的做法,這種「做的伎倆」:

abstract class Person { val name: String } 
def factory(name: String) = { 
    val _name = name 
    new Person { 
    val name: String = _name 
    } 
} 
factory("Fred").name // Fred 

我不知道任何其他方式去接近。 Scala Language Specification(第2章)中有一節討論了影子 - 它們從來沒有討論過限定這些「隱式」範圍的方法。

快樂編碼。

+3

謝謝。你見過我偶然發現的這個小竅門嗎?在一個函數中,假設你想隱含地使用一個參數,但你不想聲明這個參數在你的函數簽名中是隱含的。你可以做'隱式val _ = x'(其中x是函數參數的名稱)。 –

+0

@ landon9720我不知道。 – 2011-09-15 23:03:18

相關問題