如何在榆树中建立图书馆?

The*_*au5 6 elm

我正在整理一些Elm代码,我想知道如何执行以下操作:

假设我有以下文件结构

Project
|
|---Car
    |
    |--- BMW.elm
    |
    |--- Mercedes.elm

|...
Run Code Online (Sandbox Code Playgroud)

假设我已将BMW和梅赛德斯代码分成不同的文件以保持我的代码小而且分离,所以我更容易添加另一个文件,比如说 Toyota.elm

现在,我希望Project文件夹中的任何文件只需访问文件Car夹中的所有文件而无需编写

import Car.BMW (..)
import Car.Mercedes (..)
...etc...
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想写一些类似的东西

import Car (..)
Run Code Online (Sandbox Code Playgroud)

这让我可以访问每个文件中的所有内容.

可能吗?如果是这样,最好的策略是什么?

Joe*_*Joe 1

Elm 不支持重新导出模块,因此不可能创建单个模块来导出少数可用于限定函数的其他模块。假设您有不同的函数名称,您可以执行以下操作:

module Utils where
import Foo
import Bar

foo = Foo.foo
bar = Bar.bar
Run Code Online (Sandbox Code Playgroud)

然后你可以做

module Other where
import Utils (..)

baz = foo 1 2 3

gak = bar 2 3
Run Code Online (Sandbox Code Playgroud)

但是您将无法获得要从 Utils 模块导出的完全限定名称。

希望这可以帮助!