当前位置:  开发笔记 > 编程语言 > 正文

没有实例(Num(可能大小))

如何解决《没有实例(Num(可能大小))》经验,为你挑选了1个好方法。

我正在编译我正在构建的Yesod站点,以确保在出现此编译器错误时一切正常:

Foundation.hs:164:15:
    No instance for (Num (Maybe Size))
      arising from the literal `140'
    Possible fix: add an instance declaration for (Num (Maybe Size))
    In the `gSize' field of a record
    In the expression:
      GravatarOptions
        {gSize = 140, gDefault = Identicon, gForceDefault = False,
         gRating = PG}
    In an equation for `gs':
        gs
          = GravatarOptions
              {gSize = 140, gDefault = Identicon, gForceDefault = False,
               gRating = PG}

在阅读了haddock文档之后,我知道gSize采用了Maybe Size,并且该Size定义为:

newtype Size = Size Int

如果它有助于任何这里的功能有问题.

import Yesod.Goodies.Gravatar
import Data.Text

gravatar :: Text -> Text
gravatar email =
  gravatarImg email gs
  where
    gs = GravatarOptions {
      gSize = 140
      , gDefault = Identicon
      , gForceDefault = False
      , gRating = PG
      }

我不知道从哪里开始寻找解决方案,有人可以指出我正确的方向吗?感谢您的时间和考虑.



1> Cat Plus Plu..:

如果gSizeMaybe Size,则需要使用其中一个Maybe构造函数 - 您可以使用Nothing无值或Just x指定值.在你的片段中,它应该是Just (Size 140),如在

gs = GravatarOptions {
  gSize = Just (Size 140)
  , gDefault = Identicon
  , gForceDefault = False
  , gRating = PG
  }


事实上,几乎可以肯定"只有140"才有效.
推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有