gpt4 book ai didi

F# 转换为文字运行时提供的类型

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

换句话说,如果我想要一个完全通用的函数,我该如何确保数字类型之间的编译/运行时转换。

例如:

let f x = x + 1 // int -> int

由于 1,自动采用 int

我目前的技巧是:

let gettype (x:'T) = typeof<'T>  // 'T -> Type
let one x = Convert.ChangeType (1, (gettype x)) // 'a -> obj
let f x = x + one(x) // obj -> obj

但这不起作用,因为 + 没有为 obj 定义

最佳答案

如果您想要一个将参数加一的完全通用函数,我建议您使用 LanguagePrimitives.GenericOne :

let inline f x = x + LanguagePrimitives.GenericOne

请注意,您还需要内联您的函数,否则运算符 (+) 不能是通用的。

关于F# 转换为文字运行时提供的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52031974/

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