f# - 为什么 F# 中三引号字符串中的换行符与 Environment.NewLine 不同?
问题描述
似乎 F# 中三引号字符串中的换行符在 Windows(以及 Linux)上被转换为 LF,而不是 CRLF。但是,Environment.NewLine
在 Windows 上是 CRLF。
在 Windows 上:
let tripleQuotedString = """1
2
3"""
let concatenatedString = "1" + Environment.NewLine + "2" + Environment.NewLine + "3";;
printfn "%A" (Seq.toList tripleQuotedString) // yields ['1'; '\010'; '2'; '\010'; '3']
printfn "%A" (Seq.toList concatenatedString ) // yields ['1'; '\013'; '\010'; '2'; '\013'; '\010'; '3']
F# 规范中似乎没有提到这一点。这是一个深思熟虑的设计决定吗?
解决方案
三引号字符串的行尾与源代码文件行尾相同。
推荐阅读
- parameters - 一些电子邮件客户端正在对所有链接的查询字符串参数进行模糊测试
- python - 如何根据一列的唯一值将列表拆分为子列表?
- android - RxJava 主线程总是崩溃
- apache - 当我在 HTTPS (.htaccess) 上访问一个没有结束斜杠的文件夹时出现奇怪的行为
- random - 如何包含用于随机数生成器的 mkl_vsl 模块,例如“vsrnggaussian”?(Fortran)
- git - git add -A 与 git stage -A 的区别
- amazon-web-services - AWS CloudWatch:警报状态 24 小时后重复警报通知
- c - 跳跃搜索算法的复杂性
- python - 一天熊猫数据框中n个最低价格的小时间隔的平均值
- jenkins - 如何为 Job DSL 创建的多分支作业设置发现模式