Elm 将HTML.App导入为HTML
位于的elm教程有以下几行:Elm 将HTML.App导入为HTML,elm,Elm,位于的elm教程有以下几行: import Html exposing (Html, button, div, text) import Html.App as Html 我不明白这些导入的结果是什么名称Html引用的。是Html.App还是Html包中的函数?以及原因。将Html.App导入为App 它基本上是从html包导入应用程序。这些功能将帮助您建立一个遵循Elm体系结构的Elm程序,这是一种创建优秀代码的模式,随着项目的发展,它将保持出色的性能。import Html.App as
import Html exposing (Html, button, div, text)
import Html.App as Html
我不明白这些导入的结果是什么名称
Html
引用的。是Html.App
还是Html
包中的函数?以及原因。将Html.App导入为App
它基本上是从html包导入应用程序。这些功能将帮助您建立一个遵循Elm体系结构的Elm程序,这是一种创建优秀代码的模式,随着项目的发展,它将保持出色的性能。
import Html.App as App
它基本上是从html包导入应用程序。这些函数将帮助您建立一个遵循Elm体系结构的Elm程序,这是一种创建伟大代码的模式,随着项目的发展,它将保持伟大。以下是我的理解
- 如果
单独使用,则它引用定义的类型 在Html
模块内部,它可以单独使用,因为 它通过Html
指令公开。 (即import
)Html.Html
(Html.xx
是任意的,以xx
模块公开的为准) 是模块Html.App
公开的Html.App
(即xx
)。 而且它不能单独使用,因为它不是随 用单词Html.App.xx
分隔名称Html
只能是名称间距运算符,如果
左边的单词以大写字母开头。
而且,只有值(必须以小写字母开头)可以具有属性,其中也可以使用
。
(ModuleName.TypeName
vsrecordValue.property
)
因此,这并不含糊
但是,如果两个模块公开相同的名称
(例如Html.xx
和Html.App.xx
)
,则xx
会变得模棱两可
编译器会抱怨的
例如,当导入Html
模块时,exposing(…)
我希望这是有意义的…这是我的理解
- 如果
单独使用,则它引用定义的类型 在Html
模块内部,它可以单独使用,因为 它通过Html
指令公开。 (即import
)Html.Html
(Html.xx
是任意的,以xx
模块公开的为准) 是模块Html.App
公开的Html.App
(即xx
)。 而且它不能单独使用,因为它不是随 用单词Html.App.xx
分隔名称Html
只能是名称间距运算符,如果
左边的单词以大写字母开头。
而且,只有值(必须以小写字母开头)可以具有属性,其中也可以使用
。
(ModuleName.TypeName
vsrecordValue.property
)
因此,这并不含糊
但是,如果两个模块公开相同的名称
(例如Html.xx
和Html.App.xx
)
,则xx
会变得模棱两可
编译器会抱怨的
例如,当导入Html
模块时,exposing(…)
我希望这是有意义的…TL;医生: 如果只有
Html
,它就是类型(最初是Html.Html
)
但是如果后面有
,它就是一个模块名,您可以通过执行Html.something
从Html
和Html.App
模块中获取定义
更多详细信息:
import Html
的结果是您可以访问Html.whateverHtmlExposes
公开(Html、按钮、div、文本)
的结果是您可以编写
而不是Html
(类型)Html.Html
而不是按钮
(函数)Html.button
- 等等
import Html.App
的结果是您可以访问Html.App.whateverhtmlappeexposes
,但是由于as Html
部分,您现在可以像Html.whateverhtmlappeexposes
那样编写它
不要担心冲突-在这种情况下,编译器将警告您:
-- NAMING ERROR ---------------------------------------------------------- C.elm
This usage of variable `A.x` is ambiguous.
9| Html.text A.x
^^^
Maybe you want one of the following?
A.x
B.x
Detected errors in 1 module.
这里我将B
导入为A
,这两个模块都暴露了x
:
榆树
榆树
榆树
TL;医生: 如果只有
Html
,它就是类型(最初是Html.Html
)
但是如果后面有
,它就是一个模块名,您可以通过执行Html.something
从Html
和Html.App
模块中获取定义
更多详细信息:
import Html
的结果是您可以访问Html.whateverHtmlExposes
公开(Html、按钮、div、文本)
的结果是您可以编写
而不是Html
(类型)Html.Html
而不是按钮
(函数)Html.button
- 等等
import Html.App
的结果是您可以访问Html.App.whateverhtmlappeexposes
,但是由于as Html
部分,您现在可以像Html.whateverhtmlappeexposes
那样编写它
不要担心冲突-在这种情况下,编译器将警告您:
-- NAMING ERROR ---------------------------------------------------------- C.elm
This usage of variable `A.x` is ambiguous.
9| Html.text A.x
^^^
Maybe you want one of the following?
A.x
B.x
Detected errors in 1 module.
这里我将B
导入为A
,这两个模块都暴露了x
:
榆树
榆树
榆树
在两个不同的名称空间中公开标识符Html
Html.Html
,它只能出现在类型签名中module B exposing (x)
x = "x from B"
module C exposing (..)
import A
import B as A
import Html
main = Html.text A.x
import Html exposing (Html)
import Html.App as Html