32
A
回答
81
如果你想避免使用全名,你可以在F#中使用open
:
open System
let s = String.Format("Hello {0}", "world")
這應該在兩個F#交互工作(首先輸入open
條款)和正常編譯的應用程序中。關鍵是你必須寫String
大寫S
。這是因爲C#中的string
不是通常的類型名稱 - 它是一個指向System.String
類型的關鍵字。
另外,你也可以看看sprintf
函數。這是一個F#特異性替代String.Format
其中有一些很好的優勢 - 例如,它是類型檢查:
let s = sprintf "Hello %s! Number is %d" "world" 42
編譯器會檢查參數(字符串和INT)匹配字符串中的格式說明(%s
和用於整數的%d
)。該功能還更好地工作在要使用部分功能應用場景:
let nums = [ 1 .. 10 ]
let formatted = nums |> List.map (sprintf "number %d")
這將產生含「1號」的字符串,「2號」等的列表...如果你想做到這一點使用String.Format
,你必須明確地寫一個lambda函數。
3
相關問題
- 1. String.format()
- 2. String.Format的反轉?
- 3. vb.net的String.Format
- 4. 的String.Format VS + C#
- 5. String.Format中的FormatException
- 6. 的String.Format在VB
- 7. 使用的String.format
- 8. 的String.Format問題
- 9. 的String.Format問題
- 10. 的String.Format在.NET
- 11. JSP中的String.format
- 12. 雙的String.Format
- 13. 的String.Format在C#
- 14. Javascript中的String.Format?
- 15. string.format conundrum
- 16. C# - String.Format()
- 17. string.format error
- 18. 的String.format用的string.join
- 19. 的String.format或的getString
- 20. String.Format針對string.Format。任何問題?
- 21. 的String.format:2 => 02
- 22. 完善的String.format CallExpression
- 23. Vb.NET與ArrayList的String.Format
- 24. 的String.format()拋出FormatFlagsConversionMismatchException
- 25. 的String.format()錯誤:java.util.MissingFormatArgumentException
- 26. 的String.format在剃刀
- 27. Python的string.format()和Unicode
- 28. 的String.Format在Visual Studio
- 29. 實現與的String.Format
- 30. .aspx中的String.Format在
我希望我可以upvote這兩次建議'sprintf',這是一個更好的選擇大多數時間。 – 2013-08-20 10:36:50
'sprint'確實比較習慣,但在某些循環中頻繁調用時可能會變慢... – 2013-08-21 01:22:45
哇,我很驚訝[F#中速度很慢'sprintf'](http://stackoverflow.com /問題/ 16742189 /性能的-的sprintf VS字符串格式)。好點子。 – 2013-08-21 13:00:51