这是一件非常微不足道的事情,但我真的很难让它发挥作用。我想转换 sqrt n
的结果,其中 n
是 int64
类型,最后将其传递给采用 int 的函数
但我真的很难找到一个像样的解决方案,这是我想出的方法,但这太可怕了,我不敢相信在 C# 中做一些如此微不足道的事情应该如此在 F# 中很难。
n
|> float
|> sqrt
|> int
|> function
最佳答案
这是 F# - 如果您没有想要的,请编写一个函数。例如:
let inline sqrttoint n =
(int (sqrt (float n)))
n |> sqrttoint |> function
最重要的是,它适用于任何可以转换为 float
的东西。
C# 与 F# 的主要问题是,您习惯于 C#,其中数字类型是自动提升的,而 F# 希望您关心大多数所有内容的类型,并且类型的更改需要更加明确。
关于casting - F# 转换一个 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722193/