【问题标题】:Int and String F# [closed]Int 和字符串 F# [关闭]
【发布时间】:2012-08-30 17:47:57
【问题描述】:

我在 F# 中有一个函数,我在其中获取 int 值并将 int 作为 string 返回。

let inttostring (x:int):string = 
    ""+x

我无法让 ToString 工作。任何帮助将不胜感激。

【问题讨论】:

  • 这不行吗? let inttostring (i: int): string = i.ToString()
  • 投票结束。如果您不知道 F# 是强类型或关于 object.ToString 的,那么是时候阅读文档了。
  • 这与强类型无关。 C# 是强类型的,但它具有隐式转换,因此您可以将整数添加到字符串。这不是我在 C# 中的首选方法,但它会编译。如果有人不知道 F# 不进行隐式转换,我认为这不一定是 RTFM 时刻。
  • @JoelMueller:如果他想知道为什么这不起作用,或者为什么 F# 没有像 C# 那样的隐式转换,这些都是合理的问题。问题是他说他无法将 int 转换为字符串,这表明他甚至没有进行粗略的搜索。

标签: string f# int


【解决方案1】:

空字符串""x 不兼容,int 类型。你可以使用

let int2String x = sprintf "%i" x

let int2String (x: int) = string x

【讨论】:

  • ...或i.ToString()Convert.ToString(i)String.Concat("", i)...
  • 值得一提的是,对于 F# 的新加入者来说,类型之间是隐式转换的(这就是 pad 上面所说的)。您需要从一种类型显式转换为另一种类型才能编译代码。
  • @Chris:我相信你的意思是不是
  • @Daniel:我很抱歉,你是完全正确的。 F# 类型像在其他语言(例如 C#)中那样被隐式转换
猜你喜欢
  • 2013-07-01
  • 2018-05-13
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-16
  • 2021-12-05
相关资源
最近更新 更多