如何导入合格的数据?
How to import data as qualified?
我有以下声明:
data Route
= Home
| SignUp
| LogIn
| NotFound
我知道我可以像 import App.Routes (Route(..))
一样导入它并像 route.navigate Home
一样使用它。
但是如何以合格的访问权限使用它才合适?
import App.Routes (Route)
-- ...
route.navigate Route.Home
抛出:Unknown module Route
要导入合格的模块,请使用as
关键字:
import App.Routes as Route
如果您想进一步限制可通过点访问的内容集,您也可以添加括号:
import App.Routes (Route(..)) as Route
此外,您可以通过这种方式导入多个模块,并且它们都可以使用相同的限定符访问:
import App.Routes (Route(..)) as Route
import App.Navigation (navigate) as Route
...
Route.navigate Route.Home
但在这种情况下,您最好保留两个导入的括号,否则编译器会警告您潜在的名称冲突。
另外,即使您没有进口合格,我强烈建议仍然明确列出所有进口:
import App.Routes (Route(..))
这将使您在几个月后更容易理解您的程序,当您完全忘记它时。
我有以下声明:
data Route
= Home
| SignUp
| LogIn
| NotFound
我知道我可以像 import App.Routes (Route(..))
一样导入它并像 route.navigate Home
一样使用它。
但是如何以合格的访问权限使用它才合适?
import App.Routes (Route)
-- ...
route.navigate Route.Home
抛出:Unknown module Route
要导入合格的模块,请使用as
关键字:
import App.Routes as Route
如果您想进一步限制可通过点访问的内容集,您也可以添加括号:
import App.Routes (Route(..)) as Route
此外,您可以通过这种方式导入多个模块,并且它们都可以使用相同的限定符访问:
import App.Routes (Route(..)) as Route
import App.Navigation (navigate) as Route
...
Route.navigate Route.Home
但在这种情况下,您最好保留两个导入的括号,否则编译器会警告您潜在的名称冲突。
另外,即使您没有进口合格,我强烈建议仍然明确列出所有进口:
import App.Routes (Route(..))
这将使您在几个月后更容易理解您的程序,当您完全忘记它时。