为何计算机编程中优先使用下划线(_)而非短横线(-)?(针对对象命名)
哈哈,这个问题问得太戳痛点了——按住Shift打下划线确实比直接敲短横线麻烦,但为啥编程圈偏偏认准下划线?其实背后全是语法规则、历史习惯和实用性的综合考量,给你掰扯清楚:
语法冲突是核心硬伤
绝大多数编程语言里,短横线是减法运算符!比如你写my-variable,解释器会直接把它当成my - variable来解析,瞬间就会报错。比如在Python里试试:my-variable = 10 # 直接触发SyntaxError而下下划线
my_variable就完全没这个问题,编译器一眼就能识别这是个完整的标识符,不会和任何运算符混淆。历史习惯的惯性传承
早期的编程语言(比如C语言)就明确规定:标识符只能由字母、数字和下划线组成,短横线根本不在允许范围内。后来很多编程语言(Java、Python、Go等)都继承了这个设计,开发者用得顺手了,自然就形成了行业默认的命名习惯——新人入行跟着学,老程序员延续习惯,下划线就成了“标准操作”。可读性与区分度更优
虽然短横线也能分隔单词,但在不少字体里,短横线和数字1、小写字母l长得特别像,快速扫代码的时候很容易看错。而下下划线在任何字体里都醒目清晰,比如user_id比user-id更容易一眼区分出是两个单词组成的变量名,能减少阅读代码时的视觉误差。兼容场景更广泛
在命令行参数、配置文件等场景里,短横线有特殊用途(比如--help、-v),如果对象名称用短横线,很容易和这些特殊语法混淆。而下下划线在几乎所有编程相关场景里都是“安全字符”,不管是变量名、函数名还是文件名,用下划线都不会踩语法坑。
当然也有例外,比如CSS里的类名my-class就是标准写法,但那是因为CSS语法里不存在减法运算符,短横线不会引发冲突。但在绝大多数编程语言的对象名称里,下划线就是更安全、更通用的选择——就算按Shift麻烦点,总比写代码报错、排查半天强嘛!
内容的提问来源于stack exchange,提问作者Hem

