我想现在是Object.ToString()
,但我不确定......谢谢!
答案 0 :(得分:8)
我认为获得any_to_string功能的唯一方法是使用“%A”格式化程序。警告告诉你这个。
let any_to_string = sprintf "%A"
这不会调用.ToString()。对于像列表这样的“简单”类型,.ToString()已经产生了良好的表示。但是在使用自己的自定义类型时,%A格式化程序更有用。例如,在树状结构的情况下,它沿着树行走。
如果你想在对象上调用.ToString(),可以使用'%O'格式化程序。
示例:
type Tree = Node of Tree * Tree | Leaf
let myTree = Node(Node(Leaf,Leaf),Node(Leaf,Node(Leaf,Leaf)))
和FSI:
> myTree.ToString();;
val it : string = "FSI_0002+Tree+Node"
> sprintf "%O" myTree;;
val it : string = "FSI_0002+Tree+Node"
> sprintf "%A" myTree;;
val it : string = "Node (Node (Leaf,Leaf),Node (Leaf,Node (Leaf,Leaf)))"
答案 1 :(得分:3)
你可以使用sprintf:
let a = [1;2;3]
let b = sprintf "%A" a
答案 2 :(得分:1)
string
功能怎么样?
> string [1..3];;
val it : string = "[1; 2; 3]"