gpt4 book ai didi

elm - 在 Elm 中声明模块之外访问联合类型

转载 作者:行者123 更新时间:2023-12-04 14:10:45 25 4
gpt4 key购买 nike

给定

--module 1
module Module1 exposing (Message) where

type Message
= Test String
| Error Int


--module 2
module Module2 exposing (sayTest, sayError) where

import Module1 exposing (Message)

sayTest : String -> Message
sayTest msg =
Test msg --error

sayError : Int -> Message
sayError code =
Error code --error


processMessage : Message -> String
processMessage msg ->
case msg of
Test s -> s
Error i -> toString i

如何访问 TestError从模块 2 开始?

目前,我必须在模块 1 中创建函数,调用该函数时将创建所需的实例,但随着列表越来越长,这变得不切实际。

最佳答案

您可以像这样公开导出类型的所有类型构造函数:

module Module1 (Message (..)) where

或者,如果您只想导出几个类型构造函数,您可以单独调用它们:

module Module1 (Message (Test, Error)) where

type Message
= Test String
| Error Int
| Foo String
| Bar

在上面的代码中, Foo 和 Bar 构造函数对模块保持私有(private)。

关于elm - 在 Elm 中声明模块之外访问联合类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34912005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com