实例化记录中的 Svg msg 元素列表时出现奇怪的榆树类型错误

Posted

技术标签:

【中文标题】实例化记录中的 Svg msg 元素列表时出现奇怪的榆树类型错误【英文标题】:Strange elm type error when instantiating a List of Svg msg elements in a record 【发布时间】:2017-04-21 07:16:46 【问题描述】:

以下代码:

import Svg exposing (..)
import Window exposing (..)


init_size : Model msg -> Size
init_size _ =
     width = 800, height = 600 


type alias Model msg =
     extra_size : Int
    , size : Size
    , child_elements : List (Svg msg)
    

init_renderSpace : Model msg
init_renderSpace model =
     extra_size = 40
    , size = init_size model
    , child_elements = []
    

,产生一个我无法理解的奇怪错误消息。有谁知道我做错了什么?

这是错误信息:

-- TYPE MISMATCH ----------------------------------------------------- space.elm

The definition of `init_renderSpace` does not match its type annotation.

21| init_renderSpace : Model msg
22| init_renderSpace model =
23|>     extra_size = 40
24|>    , size = init_size model
25|>    , child_elements = []
26|>    

The type annotation for `init_renderSpace` says it is a:

    Model msg

But the definition (shown above) is a:

    Model msg
    ->  child_elements : List (Svg msg), extra_size : Int, size : Size 

Hint: It looks like a function needs 1 more argument.

Hint: The type annotation says there are NO arguments, but there is 1 argument
named in the definition. It is best practice for each argument in the type to
correspond to a named argument in the definition, so try that first!

基本上我正在尝试创建一个记录,它的参数基本上是一个 svg 节点列表。当我尝试使用空列表初始化模型时,出现错误。

【问题讨论】:

【参考方案1】:

错误消息意味着init_renderSpace 的类型定义是Model msg,但它的实现是Model msg -> Model msg。换句话说,你说init_renderSpace是一个模型,但它实际上是一个接受模型并返回模型的函数。

因为您没有在init_size 中使用任何参数,所以我将删除init_sizeinit_renderSpace 中的参数:

init_size : Size
init_size =
     width = 800, height = 600 

init_renderSpace : Model msg
init_renderSpace =
     extra_size = 40
    , size = init_size
    , child_elements = []
    

【讨论】:

以上是关于实例化记录中的 Svg msg 元素列表时出现奇怪的榆树类型错误的主要内容,如果未能解决你的问题,请参考以下文章

为 rmiregistry 实例化服务器类时出现运行时异常

子类化 UISplitViewController 时出现奇怪的错误

WkWebView 实例化中的内存泄漏

在 Chrome 中的页面上使用动画时出现奇怪的背景故障

显示图像时出现奇怪的错误

在 NSMutablearray 中添加新实例时出现奇怪的崩溃