한 가지 방법은 (아래 설명)입니다.
getHomeR :: Handler Html
getHomeR = do
muid <- maybeAuthId
m <- case muid of
Nothing -> return Nothing
Just i -> runDB $ get i
defaultLayout $ do
[whamlet|
<p>Welcome!
$maybe user <- m
<p>
Welcome #{userIdent user}<br>
<a href=@{AuthR LogoutR}>Logout
$nothing
<p>
<a href=@{AuthR LoginR}>Go to the login page
|]
이런 식으로, 우리는 아마도 m에서 사용자를 만들고 템플릿 파일에 그것을 구문 분석합니다. 주목하십시오 $maybe user <- m
, 이것은 (대략) 번역됩니다
case m of
Just user -> do
-- Do stuff with user, which is now of type User (and not Maybe User)
Nothing -> do
--Do stuff if m was nothing
그래서 당신의 와일드 카드를 사용하지 않는 것이 좋습니다 $maybe _ <- muid