gpt4 book ai didi

javascript - 在 WebSharper 中的整数类型之间转换

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:31 25 4
gpt4 key购买 nike

似乎 WebSharper 在整数类型之间进行转换有一些困难(例如,int32uint64)。我明白了:

error : Failed to translate a method call: ToUInt64(..) [Microsoft.FSharp.Core.Operators]

int32 也是如此-> uint32 , int16 -> int32和许多其他(只有 byte <-> int32 似乎在工作)。

因此,问题是:我该如何解决这个问题?我有一个整数 i (这是 int32 因为我什么都得不到)现在我想得到 i - 来自 Uint8Array 的第一个元素. Uint8Array.Get想要一个 uint64 .如何转换我的 iuint64

我打算使用 [<Inline>]作弊,但这也不起作用,因为即使我尝试返回或将任何整数不同形式的 int32 作为参数传递,我也会收到此错误.

最佳答案

从您的评论看来,您的方向是正确的。 WebSharper 目前没有实现任何二进制处理 .NET API,所以自己实现它是正确的。使用数字类型来保证编译时的完整性,同时记住它们在 JavaScript 中都表示为 Number 也是一个好主意。如果您缺少标准库中的转换代理,您可以添加它们或使用 Inline 定义,我相信这应该有效:

[<AutoOpen>]
module Conversions =

[<Inline "$0">]
let inline int64 x = int64 x

[<Inline "$0">]
let inline int32 x = int32 x

[<Inline "$0">]
let inline uint32 x = uint32 x

[<Inline "$0">]
let inline uint64 x = uint64 x

当然,上述实现不会执行这些运算符在 F#/.NET 中执行的 chop 操作。

关于javascript - 在 WebSharper 中的整数类型之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15637523/

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