let reverseString (myStr: string)=
myStr|>Seq.toList|>List.rev |> Array.ofList|>string
我正在F#中为此功能工作。我运行上面的一个,并希望得到例如我做的结果
reverseString "abc"
我希望它会显示cba
,但实际上它返回System.Char []。那可能是问题所在,因为我想查看类似“ cba”的结果,而不是检查我做对了还是不正确。谢谢!
答案 0 :(得分:6)
我认为问题可能是System.String
和string
函数的构造函数之间的混淆。
string
该函数通过基本调用ToString()
将任何对象转换为字符串,对于Char数组,该System.Char[]
仅输出类型名称:System.String
。
另一方面,[| 'a'; 'b'; 'c'|] |> string |> printfn "%A" // "System.Char[]"
[| 'a'; 'b'; 'c'|].ToString() |> printfn "%A" // "System.Char[]"
[| 'a'; 'b'; 'c'|] |> String |> printfn "%A" // "abc"
6 |> string |> printfn "%A" // "6"
6 .ToString() |> printfn "%A" // "6"
6 |> String |> printfn "%A" // error: no overloads for int
"abc" |> string |> printfn "%A" // "abc"
"abc" .ToString() |> printfn "%A" // "abc"
"abc" |> String |> printfn "%A" // Strangelly enough gives error too
类具有几个重载的构造函数,其中一个是char数组,因此会产生一个字符串:
<style type="text/css">
html, body{
height:100%;
margin:0;
padding:0;
}
body{
overflow: scroll;
}
</style>
<div style="display:flex;">
<div style="min-width:50%;height:100%;border:solid silver 1px;">LeftLeftLeftLeftLeftLeft.......repeat.....</div>
<div style="min-width:50%;height:100%;border:solid silver 1px;">RightRightRight.....repeat.......</div>
</div>