爲什麼這個代碼工作,異常警告在Haskell,但與OldException
import qualified Control.OldException as E
但與
import qualified Control.Exception as E
下面是代碼:
fileContents <- (readFile "shpm.txt") `E.catch` (\_ -> return "")
這裏是錯誤我得到「新」異常
Ambiguous type variable `e0' in the constraint:
(E.Exception e0) arising from a use of `E.catch'
Probable fix: add a type signature that fixes these type variable(s)
In a stmt of a 'do' block:
fileContents <- (readFile "shpm.txt")
`E.catch` (\ _ -> return "No Tasks")
這工作得很好,我明白除了「const」之外的所有東西,那是幹什麼的? –
@hatboysam'const'只需要兩個參數並返回第一個(「拋棄」第二個參數)。這只是給了我一種提供'e'類型的內聯聲明的方法(實際上並未使用'e'的值)。我首先想到了這一點,因爲它是對你的例子的直接修改,但第二個例子更清晰,可能是你應該使用的。 –
謝謝!很好的解釋。 –