gpt4 book ai didi

module - 我可以只从 F# 模块导入一个声明吗?

转载 作者:行者123 更新时间:2023-12-01 12:12:40 25 4
gpt4 key购买 nike

假设我有这样一个模块:

module Foo

let x = 1
let y = 2

现在我可以像这样使用这个模块了:

module Bar

let z = Foo.x + Foo.y

是否可以从 Foo 中导入一个不需要限定的定义?

类似于:

module Bar

import x from Foo // Not real code

let z = x + Foo.y // x need not be qualified

请注意,我不想从 Foo

导入 一切

最佳答案

你不能,没有直接的 F# 相当于 ES6 import { ... } from 'Module'句法。 F# 支持将代码组织到模块和命名空间中,但是模块和命名空间都是通过 open 整体“导入”的。关键词。如评论中所述,您可以使用本地绑定(bind)来简化对值的限定访问(例如 let exchangeRange = Conversions.Currency.UsdToCadExchangeRate )或类型别名以简化对类型的限定访问( type Converter = Conversions.Currency.CurrencyConverter )。

此外,模块可以用 [<AutoOpen>] 标记属性使其内容无需合格访问即可访问,或 [<RequireQualifiedAccess>]属性使其内容在合格时可访问,即使模块在 open 中被引用也是如此表达。

参见 this MSDN article获取更多信息。

关于module - 我可以只从 F# 模块导入一个声明吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50632841/

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