是否 "bad practice" 在字符串文字中使用制表符?
Is it "bad practice" to use tab characters in string literals?
作为 的后续行动(请注意我不是上述问题的作者)。
我了解到这样的代码被认为是 "bad practice"。这些评论似乎在暗示同样的事情。但是,出于某种原因,该标准允许这种欺骗行为,因此必须有人发现它没有任何危害或有它的用例。
是否转义制表符被广泛接受为 "bad practice"?
我从来没有真正考虑过,但我无法想象找到文字制表符是个好主意,因为您无法立即将它们与标准空白区分开来。如果您出于某些特定原因需要在字符串文字中使用制表符,那么编写 \t
会更加清晰和明确,这样每个人都可以准确地知道您打算做什么。
顺便说一句,仅仅因为标准允许就必须有一个好的用例的概念……有点不正确。例如,标准允许我们声明原始指针,并编写 new
.
在文字中使用制表符而不是转义它们 ('\t'
,"\t") 是一种不好的做法,因为:
- reader 没有立即意识到有一个选项卡。结果:关于代码的错误假设,错误的更改(例如,当需要调整代码输出的对齐方式时)
- 选项卡扩展可能因您的编辑器而异。结果:阻碍团队合作和维护,因为不同的人可能会看到不同的布局。
- 最重要的是:一些编辑器在保存源文件时将制表符转换为空格(使用配置的制表符扩展设置)摆脱了此类嵌入式制表符。结果:unnoticed/undesired 更改(f.ex:当团队成员使用此类编辑器并进行较小的编辑时,甚至不在此字符串中)。
作为
我了解到这样的代码被认为是 "bad practice"。这些评论似乎在暗示同样的事情。但是,出于某种原因,该标准允许这种欺骗行为,因此必须有人发现它没有任何危害或有它的用例。
是否转义制表符被广泛接受为 "bad practice"?
我从来没有真正考虑过,但我无法想象找到文字制表符是个好主意,因为您无法立即将它们与标准空白区分开来。如果您出于某些特定原因需要在字符串文字中使用制表符,那么编写 \t
会更加清晰和明确,这样每个人都可以准确地知道您打算做什么。
顺便说一句,仅仅因为标准允许就必须有一个好的用例的概念……有点不正确。例如,标准允许我们声明原始指针,并编写 new
.
在文字中使用制表符而不是转义它们 ('\t'
,"\t") 是一种不好的做法,因为:
- reader 没有立即意识到有一个选项卡。结果:关于代码的错误假设,错误的更改(例如,当需要调整代码输出的对齐方式时)
- 选项卡扩展可能因您的编辑器而异。结果:阻碍团队合作和维护,因为不同的人可能会看到不同的布局。
- 最重要的是:一些编辑器在保存源文件时将制表符转换为空格(使用配置的制表符扩展设置)摆脱了此类嵌入式制表符。结果:unnoticed/undesired 更改(f.ex:当团队成员使用此类编辑器并进行较小的编辑时,甚至不在此字符串中)。