我正在处理的应用程序有一个可以输入字符串的字段。
字符串中的特殊字符会在计算字符串时导致插入不同的内容,但这些特殊字符前面可以跟一个转义字符(反斜杠),这会导致特殊字符按字面输出而不是其特殊含义。
将其视为与正则表达式类似:.
匹配任何字符,但\.
匹配点。
当转义字符后跟一个不需要转义的字符时,最直观的事情是什么?例如,它会更有意义:
\f
变为f
(“逃脱的f”)\f
仍为\f
所有这些都是可能的,在我看来是合理的。但哪个更有意义,哪个在其他语言中最常见?
答案 0 :(得分:5)
我投票支持第一个解决方案。它使形成字符串变得容易:如果你不知道某个字符在你的上下文中是否具有特殊含义,那就逃避吧。它不会受伤。
答案 1 :(得分:1)
最终,正确答案可能与语言无关。在阿达,我期待选项三,因为它主要是严格执行严格的规则。在Perl中,我希望选择一个或两个,因为它通常更宽松。
由于我主要是一名C ++程序员,所以我会投票给选项4:安排在这种情况下调用函数。 “错误”序列作为参数传递给它,并且它应该返回解释结果或抛出异常。
如果它是一个原生的Windows API,我会期待一些接近C ++解决方案的东西,只是它会建立一系列函数,从最近添加的函数开始,并沿着链向下运行,直到函数返回解释结果,或者它到达链的末尾,默认函数会引发异常。