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