前言:最近在了解F#,无意中看到一个日文的教程(http://techbank.jp/Community/blogs/gushwell/default.aspx),觉得很不错,所以希望可以和大家一起分享、学习。

这次我们学习字符串相关知识。示例代码如下:
#light
let str1 = "C:\\Windows\\System32"
printfn "%s" str1
let str2 = @"C:\Windows\System32"
printfn "%s" str2
let str3 = str1 + "\\spool"
printfn "%s" str3

输出结果是:
C:\Windows\System32
C:\Windows\System32
C:\Windows\System32\spool

字符串常量的声明和C#是一样的。
带有@的字符串使用起来就很方便。
字符串的连接可以通过+运算符实现,这也同C#一样。
使用字符串属性或者方法的代码如下:
#light
let str = "1234567"
printfn "Length = %A" str.Length
let str5 = @"Hello ""F#"" world"
printfn "%s" (str5.Replace("world", ""))

输出结果是:
Length = 7
Hello "F#"

编码时输入.符号后,Intellisense就可以显示可以使用的属性或者方法。
F#的字符串对相应的是System.String。

此外,如下的代码会编译不通过:
printfn "%s" str5.Replace("world", "")         // Compiler Error
原因就是调用方法时候需要使用()。

还有,如下代码也会有编译错误:
let str1 = "C:\\Windows\\System32"
printfn str1         // Compiler Error
因为printf中无法省略输出格式的指定。