如何在Elm中将Maybe(List)转换为Just List?
我有一个由字符串列表组成的列表,声明为:如何在Elm中将Maybe(List)转换为Just List?,list,elm,maybe,List,Elm,Maybe,我有一个由字符串列表组成的列表,声明为: type alias Model = { board : List (List String) } init : Model init = { board = [ ["", "", ""] , ["", "", ""] , ["", &quo
type alias Model =
{ board : List (List String)
}
init : Model
init =
{ board =
[ ["", "", ""]
, ["", "", ""]
, ["", "", ""]
]
}
在我的更新函数中,我试图通过访问列表的内部元素
(getAt col (getAt row model.board))
但是,当我试图编译它时,我得到了以下错误。如何从Maybe List转换为Just List或simply List
The 2nd argument to `getAt` is not what I expect:
65| (getAt col (getAt row model.board))
^^^^^^^^^^^^^^^^^^^^^
This `getAt` call produces:
Maybe (List String.String)
But `getAt` needs the 2nd argument to be:
List a
首先回答你的问题: 使用或 但是看起来你想做点什么,因为列表不是正确的解决方案 如果你有一个列表,并且你知道它从来都不是空的,那么使用类似 如果您知道每个列表中的条目数,请使用
对于2D板,我建议您创建自己的(不透明)自定义类型。或者可能会有帮助。首先回答您的问题: 使用或 但是看起来你想做点什么,因为列表不是正确的解决方案 如果你有一个列表,并且你知道它从来都不是空的,那么使用类似 如果您知道每个列表中的条目数,请使用 对于2D板,我建议您创建自己的(不透明)自定义类型。或者可能会有帮助。您可以尝试:
model.board
|> getAt row
|> Maybe.withDefault []
|> getAt col
甚至更好
model.board
|> getAt row
|> Maybe.andThen (getAt col)
(有关更多信息,请参见)您可以尝试:
model.board
|> getAt row
|> Maybe.withDefault []
|> getAt col
甚至更好
model.board
|> getAt row
|> Maybe.andThen (getAt col)
(有关更多信息,请参阅)就是这样,Elm强制您处理没有元素且
getAt
不返回任何内容的情况。您可以使用案例。。可能是
或的。使用默认值可能还有其他方法,但所有这些方法都要求您指定在没有任何元素的情况下,在路上或其他情况下应该发生什么。这是否回答了您的问题?就是这样,Elm强制您处理没有元素且getAt
不返回任何内容的情况。您可以使用案例。。可能是
或的。使用默认值可能还有其他方法,但所有这些方法都要求您指定在没有任何元素的情况下,在路上或其他情况下应该发生什么。这是否回答了您的问题?