望着IO Monad
的簽名部分來自Functional Programming in Scala:理解類型參數
trait IO[+A] { self =>
def run: A
def map[B](f: A => B): IO[B] =
new IO[B] { def run = f(self.run) }
據我瞭解,IO[+A]
指IO
類型需要的類型參數‘A或它的子類。’
看着def map[B]...
,B
是涉及這個函數的類型。據我所知,使用map[B](f: A => B): IO[B]
是有用的,因爲您可以列出B
作爲返回類型f
,以及返回的類型參數IO
?
所以,下面的實現會導致編譯時的問題:
map(f: Int => String): IO[Int]
對不起,有什麼問題嗎? ;) –
基本上我正在尋找確認/更多細節在我的上面的例子,請:) –
我希望我回答你的問題。我認爲這是一個很好的問題,但它不容易措辭。 –