gpt4 book ai didi

f# - 我可以在 F# 类型提供程序中创建多个相同类型的别名吗?

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

我正在使用类型提供程序来创建版本控制的 api,您可以在其中选择要调用的组件的旧版本,而不是当前的最新版本。

目前,它把这些放在一个看起来像这样的命名空间中:

Provided.ComponentName.VersionName(... this is the type constructor ...)

ComponentName 目前是一个命名空间,如果有区别的话。

一旦构建了组件的所有特定版本,我还想公开:

Provided.ComponentName.Latest(... constructor ...)

作为将返回最新版本实例的静态方法或类型别名。

这样做的最佳方法是什么?

最佳答案

我不认为有一种方法可以生成 F# 类型别名(这将是将 Latest 别名为该类型的特定版本的好方法)。

作为替代方案,我想您可以将 VersionName 生成为嵌套类型,并将 Latest 生成为返回类型的适当版本的静态方法。为此,ComponentName 必须是包含其他类型和一个静态方法的类型:

// Creates an instance of `VersionName` 
// (a nested type of `ComponentName`)
Provided.ComponentName.VersionName(....)

// Creates an instance of `SomeVersionName` type
// (a static method of the `ComponentName` type)
Provided.ComponentName.Latest(....)

唯一丑陋的是 VersionName 是一个类型(并且可以使用 new 创建)而 Latest 是一个静态方法因此它不适用于 new

关于f# - 我可以在 F# 类型提供程序中创建多个相同类型的别名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20567690/

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