今天给各位分享下划线和减号简介的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
深入的差别
所有下划线连接的字符串都可以通过双击选择(注),而减号连接的字符串需要用鼠标选择。因此,下划线连接更加方便,这也是一些同学选择使用下划线的原因之一。
这个区别接近于下划线和减号的本质区别,就是它们在“分词”上的区别。在计算机世界中,下划线连接通常算作一个“单词”,而减号连接则不算。
注意:事实上,并不是所有软件都是这样。我尝试了一个随机版本的Word,但它不是这样的(如下图所示)。
分词的差别
这里的“单词”不是英文单词。在计算机世界中,我们通常称其为标识符。在标识符中,下划线的地位与26个字母基本相同,略高于数字的地位,因为数字通常不能作为首字母。
在主流的正则表达式中,用来表示“单词”的字符,即\w,是这样的:[A-Za-z0-9_],即大小写字母、数字和下划线。注意,它不包含减号(这里的减号是用来表示范围的)。
因此,在计算机世界中,大家对‘word’所包含的字符的约定基本相同:包含下划线,但不包含减号。
基于这个分词原理,除了刚才双击行为的差异之外,还会有很多差异。
排版的差别
排版上的差异主要体现在自动换行上。减号充当换行符的截断边界,而下划线通常不会。
Word中分词/换行的区别
一些考虑不周的软件,在面对极长的“下划线字”时,会因为没有分开而造成“溢出”(超出预期的界面区域)。
Jenkins 中的下划线溢出(顶部和底部之间的比较)
搜索的差别
如果你的公司生产产品,模型称为mycompany_myproduct,如果整个文档都使用这个代号,在极端情况下,不会提到mycompany或myproduct这两个词,那么,对于某些搜索引擎,通过myproduct否则mycompany 将无法搜索此页面。
如果型号为mycompany-myproduct,则可以通过mycompany和myproduct进行搜索。在做SEO的时候,需要考虑到这种差异。
据说对于百度来说,两者的差别比较小;而对于Google来说,用减号连接更有利。毕竟,大多数人倾向于使用关键字myproduct 进行搜索。
深入的逻辑
从形式和逻辑组合上看,有4个符号用于区分分区。
形式上断开,逻辑上断开:这是完全分离,没有争议,使用空间;形式上连接,逻辑上断开:我们称之为“弱连接”,通常带有减号;形式连接、逻辑连接:我们称之为“强连接”,通常带有下划线;因此,真正有意义的组合是前3个。我们可以选择其他符号来表达这三个含义,但从外观和传统来看,空格、减号和下划线这三个符号是更好的选择。
为什么要用下划线?
最初,我们将使用下划线,因为减号用于表示减法。 my-var 表示变量my 减去var;如果一个变量包含多个英文单词,为了区分它们并且不想使用驼峰表示法MyVar,则必须使用下划线my_var。大多数编程语言都是如此。
对标识符的这一要求将得到普遍化。例如,在Python中,包名称中只能使用下划线,不能使用减号。因此,作为模块的文件名不能使用减号(但作为一般不带引号的程序文件仍然可以使用减号)。
这种概括进一步传播到C/C++ 世界,例如,Google 更喜欢C++ 文件名是下划线(尽管可以使用减号)。
这种概括最终可能会蔓延到所有需要连接词的场景。毕竟,人们更有可能接受单一规则。
可以不用下划线的编程世界
但这也不是绝对的。
LISP类语言
在明确区分运算符和连接器的语法中,标识符可以包含减号,例如LISP,其中运算符前置,元素之间用空格或括号分隔,因此标识符可以随意包含减号。不。
(let ((my-var 300) (your-var 100))(print (- my-var your-var))) 上面和下面的代码,结果是200。 ‘var-300’, ‘var- 100’,甚至’300-300’,’1-100’都只是标识符,不会被视为减法表达式。仅当列表中的第一个元素是减号时才执行减法。
(let ((var-300 300) (var-100 100))(打印(- var-300 var-100)))(let ((300-300 300) (1-100 100))(打印(- 300 -300 1-100)))
HTML世界
在XSL中,带有减号的关键字被广泛使用,例如for-each、value-of、copy-of。同样,您自己的标识符当然可以包含减号,例如下面代码中的my-header 。
xsl:variable name=’my-header’ tr thTitle/th thArtist/th /tr/xsl:variablexsl:template match=’/’ table border=’1′ xsl:copy-of select=’$my-header’/xsl:for-each select=’catalog/cd’ tr tdxsl:value-of select=’title’//td tdxsl:value-of select=’artist’//td /tr /xsl:for-each /table/xsl:templateCSS 是一样的。
.banner { border: 纯黑1px;框阴影: 1px 2px;背景颜色: 黄色;文本对齐:居中; box-sizing: 边框框; width: calc(100% – 80px);} 它有专门的关键字来引用变量(var)的值,并进行表达式求值(calc),因此可以用以减号开头的标识符来完成。
.foo { –widthA: 100px; –widthB: 计算(var(–widthA)/2); –widthC: 计算(var(–widthB)/2); width: var(–widthC);} 感觉,在HTML世界里,似乎对使用下划线有很强的抵触情绪。在HTML/CSS/XML/XSL 关键字中,似乎使用减号而不是下划线。
思考:语言只是一种约定吗?
当我还是个孩子的时候,一些读错的复音单词现在已经正确了。因为大多数人都是按照“错误”的意思去读的,比如平淡、暴露等。
毕竟语言的功能是交流,重要的是大多数人都能理解。由于大多数人认为应该这样发音,因此“只是犯错误”并没有什么错。而且,原来的“正确”发音并不能反映出更多或更正确的本质。
我工作的最后一家公司到处都是下划线。例如,在Linux内核代码中,如果你看到带有下划线命名的文件,那么它们基本上是我们公司添加的。换了另一家公司后,这种现象更加严重。几乎所有需要连接单词的地方都使用下划线。
作为一名中老年码农,我应该感到高兴。这表明程序员已经开始统治世界。
那么,这是否就像担心是否使用下划线或减号,就像与罕见的复音字符苦苦挣扎,或者茴香这个词有多种写法一样,已经变得不合适了?我应该随波逐流吗?
但据我有限的观察,在英语的技术世界里,两者的用法还是有区别的,并没有无意识地使用下划线。
另一个坚持是,从逻辑上讲,我们需要这两个符号:一个用于强连接,一个用于弱连接(如前所述)。两者并不是完全替代的。
结语及倡议
下划线和减号都可以用来连接字符串。它们之间的本质区别在于分词逻辑的不同。
下划线通常用来表示“强联系”:它是形式上的联系,也是一个逻辑上的整体。在机器世界中,它通常被用作“单词”;减号通常用来表示“弱连接”:形式上是连接的。在逻辑上是分开的,通常被机器视为多个“单词”;在两个连接符共存的字符串中,我们通常认为下划线具有更高的“优先级”。在国内软件领域,个人观察表明下划线正在被滥用。但在英语世界,在代码之外,基本上还是沿袭英语的书写习惯,使用减号作为连接符。
所以我建议:如果你别无选择,请尝试使用减号作为连接符。
综上,目标是机器(比如编译器)可见的区域,比如某些语言的源代码、文件名,使用下划线;目标是人类可见的区域,比如UI、技术文章,遵循英文书写习惯,使用减号。这样兼容性最好。
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/130850.html
用户评论
晨与橙与城
一直觉得这两种符号差别还挺大啊,下划线是强调的意思,比如数据库里用下划线区分字段名,减号就是连接的意思,像电话号码格式那样使用。作者的分析很到位!
有13位网友表示赞同!
我一个人
标题就吸引我了,我是个程序员,对这两种符号简直了如指掌!代码中确实经常用到,下划线主要是用于命名变量和数据结构,而减号则用在数学表达式和其他一些特殊场景,虽然看似简单符号却别处可替代啊~
有15位网友表示赞同!
将妓就计
我平时用电脑比较多,写文也习惯用下划线标注重点,突然意识到减号也能用,比如连接两个词语的意思挺不错的。不过好像很少见有人用减号做文章吧…
有12位网友表示赞同!
执拗旧人
我感觉标题说的很有道理,在下划线和减号的使用上确实有区别,而且它们在不同领域的应用也各有侧重。下划线主要用于文字标注或分割,而减号则更常用在数学公式、数据分析等领域.
有15位网友表示赞同!
陌颜幽梦
其实我觉得这两种符号的区分有点模糊啊,有时候我也会把它们互换使用,比如用减号来强调某个词语…不过作者说的那些区别还是比较有道理的,至少让我对它们的使用有了更深入的理解。
有6位网友表示赞同!
青楼买醉
看完这个博文,我突然发现自己原来一直用错符号了! 下划线不就是连接两个词的意思吗?怎么还能用来标注重点呢?! 我得好好反省一下自己的标点符号运用知识啊…
有13位网友表示赞同!
夏以乔木
作者分析的很有道理!特别是提到减号在数学表达式中的应用,我以前从未想过!原来那些看起来很复杂的公式,很多都是利用减号进行连接和表达关系的。真是太牛了!
有12位网友表示赞同!
◆乱世梦红颜
我觉得这个标题有点简单啊,下划线和减号这两个符号用的也太常见了吧? 应该写一些更深入的内容,比如它们在不同编程语言中的应用区别,或者它们的历史渊源等等…
有5位网友表示赞同!
昂贵的背影
我同意作者的看法,下划线和减号的确有不同的使用场景。 但我觉得这两种符号并非绝对不可通用,有时也可以根据语境进行灵活运用。 例如,用减号连接两个单词来表达一种整体概念也是很常见的。
有16位网友表示赞同!
不相忘
写得不错! 尤其是在解释下划线在代码中的作用时,说的非常清楚易懂。 我以前一直以为这两种符号只是简单的标点符号,没想到它们在实际应用中还有这么多丰富的含义和用法!
有9位网友表示赞同!
清原
作者分析的有些地方让我不太理解。比如你说减号可以用来连接两个词语的意思?我从来没见过这个用法啊…
有12位网友表示赞同!
珠穆郎马疯@
下划线和减号是生活中经常会遇到的符号,这篇博客很有用,虽然看起来很简单,却让人对它们的用途有了更清晰的认识。希望作者能再写一些关于其他常见符号的文章!
有8位网友表示赞同!
月下独酌
我平时比较注重文字表达,对符号的使用也蛮讲究的。这篇文章让我了解到下划线和减号的不同之处,以后使用上更得注意了!
有7位网友表示赞同!