format - 反转格式空格和中断提示

标签 format ocaml string-formatting

是否可以反转格式模块中中断提示的行为,例如使用标准空格作为中断提示,并为不可中断空格添加一些特殊符号?

当前的行为导致人们可能倾向于写 "Hello@ world,@ this@ is@ a@ short@ phrase" 的情况,其中每个空格都转换为中断提示以模仿所见的行为,例如在文本编辑器、HTML 渲染器等中。

例如,这个 Using the Format module文档明确建议使用中断提示:

Generally speaking, a printing routine using "format", should not directly output white spaces: the routine should use break hints instead.

这种行为不仅使写入消息变得复杂,而且还使得在源代码中 grep 字符串变得非常困难。

似乎遵循既定惯例“每个空格都是中断提示,除非标记为不间断空格”将是更好的选择。

是否有简单的技术来包装此类字符串并反转其行为,最好不会产生过多的运行时成本和/或导致打字问题(例如,由于 stringformat 之间的转换)?

最佳答案

自 4.02 起,有一个 Format.pp_print_text 函数,它将采用常规文本并打印它,用剪切替换空格,用 new_lines 替换 \n

使用此函数,您仍然可以使用 printf 和其他便利函数进行打印:

printf "text '%a'" pp_print_text "hello, this a short phrase" 

一般来说,您的问题更多是关于库设计。因此,很难回答任何关于它的事情。它更适合在 OCaml 邮件列表上进行讨论。

关于format - 反转格式空格和中断提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31792103/

相关文章:

java - 安卓。如何获取音频文件格式?

ocaml - typerex 1.0.1 与 ocaml 3.12.1 和 emacs,未找到 cmt(i) 文件

java - 用于在 JavaScript 中查找 Java 格式字符串的正则表达式

php - 如何多次使用同一个参数?

excel - 将单元格中的日期格式设置为 yyyy-mm-dd

linux - GNUPLOT 一个月中的非法日期

function - Ocaml "in"关键字及用法

ocaml - 来自外部的参数化 GADT

python - python中的字符串分割

Python2.7 使用 format() 和 sqlite 的缓冲区对象生成 sql 查询