首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Haste中使用本地存储

在Haste中使用本地存储
EN

Stack Overflow用户
提问于 2016-07-02 22:03:17
回答 2查看 76关注 0票数 0

我想从本地存储器读取一个整数并将其写入本地存储器。

我的代码看起来像这样(到目前为止我只是想让它编译一下):

代码语言:javascript
复制
loadFromStorage = do
    mr <- getItem "budget"
    case mr of
        Left _ -> return (0 :: Integer)
        Right _ -> return (1 :: Integer)

但我得到了:

代码语言:javascript
复制
No instance for (Serialize a0) arising from a use of ‘getItem’
    The type variable ‘a0’ is ambiguous
    Note: there are several potential instances:
      instance Serialize JSON -- Defined in ‘Haste.Serialize’
      instance Serialize JSString -- Defined in ‘Haste.Serialize’
      instance (Serialize a, Serialize b) => Serialize (Either a b)
        -- Defined in ‘Haste.Serialize’
      ...plus 13 others
    In a stmt of a 'do' block: mr <- getItem "budget"
    In the expression:
      do { mr <- getItem "budget";
           case mr of {
             Left _ -> return (0 :: Integer)
             Right _ -> return (1 :: Integer) } }
    In an equation for ‘loadFromStorage’:
        loadFromStorage
          = do { mr <- getItem "budget";
                 case mr of {
                   Left _ -> return (0 :: Integer)
                   Right _ -> return (1 :: Integer) } }

问题是:

要编译这段代码,我必须做些什么?

我必须做什么才能读写一个整数?

EN

回答 2

Stack Overflow用户

发布于 2016-07-02 22:32:44

即使您没有使用mr,也需要指定它的类型。

指定mr类型的一种方法是添加let _ = mr :: ...语句:

代码语言:javascript
复制
loadFromStorage = do
    mr <- getItem "budget"
    let _ = mr :: MyType
    case mr of
        Left _ -> return (0 :: Integer)
        Right _ -> return (1 :: Integer)
票数 1
EN

Stack Overflow用户

发布于 2016-07-02 22:57:09

这对我来说很有效:

代码语言:javascript
复制
toStorage :: Int -> IO ()
toStorage n = do
    setItem "page" n
    return ()

fromStorage :: IO Int
fromStorage = do
                 value <- getItem "page"
                 either (\_ -> return 0)
                        (\n -> return n)
                        value
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38161006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档