代码之家  ›  专栏  ›  技术社区  ›  bbarker

如何从Haskell的SDL绑定中的RenderConfig中提取值

  •  0
  • bbarker  · 技术社区  · 7 年前

    这可能是一个初学者的错误,因为这是我第一次“真正”尝试使用Haskell。

    我的相关代码片段如下:

    import           SDL            (RendererConfig, RendererType(SoftwareRenderer), defaultRenderer)
    
    defaultRendererType :: RendererType
    defaultRendererType = case defaultRenderer of
      RendererConfig rt  _ -> rt
    

    值得注意的是,ghc并不抱怨 RendererConfig

    来源 渲染器配置 看起来它只有两个参数,所以我不确定为什么匹配在case表达式中不起作用。

    data RendererConfig = RendererConfig
      { rendererType  :: RendererType
        -- ^ The renderer's acceleration mode
      , rendererTargetTexture :: Bool
        -- ^ The renderer supports rendering to texture
    } deriving (Data, Eq, Generic, Ord, Read, Show, Typeable)
    

    编辑

    我得到的错误消息是:

    Main.hs:47:3: error:                                                                                   
        Not in scope: data constructor `RendererConfig'                                                                                     
        Perhaps you want to add `RendererConfig' to the import list                                                                         
        in the import of `SDL' (app/Main.hs:10:1-97).                                                                                       
       |                                                                                                                                    
    47 |   RendererConfig rt  _ -> rt                                                                                                       
       |   ^^^^^^^^^^^^^^     
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   bbarker    7 年前

    有人向我指出 RendererConfig has no constructors exported Show rendererType(defaultRenderer) .

    推荐文章