减号下划线怎么加(浅说下划线与减号)
横线符号的网名怎么拼?关于下划线和减号。
注减号、中间破折号、破折号在本文中是等价的;下划线、下划线、等号。 连接器 一般指连接单词的符号(故意不用连字符/连字符,因为连字符通常是破折号/减号)。
在上面划线
直观的差别
视觉上,负号更平衡。下划线存在感较低,甚至可能淹没在http链接中,与空格难以区分。输入时需要按Shift键加下划线,所以减号加0.1点方便。超链接中的下划线不可读。深入的差别
双击带下划线的字符串将其全部选中(注意),需要用鼠标选中所有用减号连接的字符串。所以下划线连接更方便,这也是一些同学选择使用下划线单词的一个原因。这种区别接近于下划线和减号的本质区别,即它们在 分词 。在计算机世界里,下划线连接通常被认为是a 单词和单词。,而负连接不是。
注意其实并不是所有软件都是这样的。只是尝试了一个版本的Word,但事实并非如此(如下图所示)。
分词的差别
这里的单词不是英语单词。在计算机世界里,我们通常说标识符。在标识符中,下划线的地位基本上与26个字母相同,但高于数字,因为数字通常可以 这不是之一个字母。在主流正则表达式中,用来表示 单词和单词。,即\w,如下[A-Za-z0-9_],即大小写字母,数字,下划线。注意,它不包含减号(这里的减号是用来表示范围的)。
,在计算机世界里,每个人 对包含在 单词和单词。基本上是相同的它包含下划线,但不包含减号。
基于这个分词原理,除了刚才双击行为的区别,还会有很多区别。
排版的差别
排版的区别主要体现在换行上。当换行符断开时,减号将被用作截断的边界,但下划线通常会赢 t.Word中分词和换行符的区别
一些考虑不周的软件在面对长下划线的单词时会因为没有分隔而溢出(超出预期的界面区域)。
Jenkins中的下划线溢出(上下对比)
搜索的差别
如果你的公司做一个型号为mycompany_myproduct的产品,如果文档一直使用这个代号,在极端点,没有提到mycompany或者myproduct这两个字,那么对于一些搜索引擎来说,这个页面是不会通过myproduct或者mycompany进行搜索的。如果型号是mycompany-myproduct,可以通过mycompany和myproduct找到。在做SEO的时候,我们需要更多的考虑这种差异。
据说对于百度来说,两者差别比较小;对于谷歌来说,用负号连接更有优势。毕竟,大多数人倾向于使用关键字myproduct进行搜索。
深入的逻辑
从形式和逻辑的结合来看,有四个符号用来区分分区。形式上断开,逻辑上断开这是一个完整的分区,空格使用无争议;形式连接,逻辑断开let 让我们称之为 弱连接 ,通常带负号;形式连接,逻辑连接let 让我们称之为 强连接 ,通常带下划线;形式上脱节,逻辑上有联系这是反人类的,容易出错。要算的话,中文全角空格勉强能算一个。但这不是它的初衷,只是一些坑的来源。所以真正有意义的组合是前三种。我们可以选择其他符号来表达这三个意思,但从外观和传统来看,空格、减号、下划线是更好的选择。
为什么要用下划线?
一开始我们用下划线是因为减号是用来表示减法的。My-var代表变量My减var;如果一个变量包含不止一个英文单词,为了区分它们,你不 如果不想使用camel命名法MyVar,应该使用带下划线的my_var。大多数编程语言都是如此。对标识符的这一要求将被推广。比如Python中,包名只能用下划线,不能用减号,导致作为模块的文件名不能用减号(但还是可以作为一般的不引用程序文件)。
这种泛化进一步蔓延到了C/C世界。比如Google prefer的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))(print(-var-300 var-100)))(let((300-300 300)(1-100 100))(print
t (- 300-300 1-100)))HTML世界
在XSL中,大量使用带减号的关键字,比如for-each, value-of, copy-of。同样,你自己的标识符也可以包含减号,比如下面代码中的my-header。
ltxsl:variable name=#34my-header#34gt lttrgt ltthgtTitlelt/thgt ltthgtArtistlt/thgt lt/trgtlt/xsl:variablegtltxsl:template match=#34/#34gt lttable border=#341#34gt ltxsl:copy-of select=#34$my-header#34 /gt ltxsl:for-each select=#34catalog/cd#34gt lttrgt lttdgtltxsl:value-of select=#34title#34/gtlt/tdgt lttdgtltxsl:value-of select=#34artist#34/gtlt/tdgt lt/trgt lt/xsl:for-eachgt lt/tablegtlt/xsl:templategt
CSS中也是这样。
.banner { border: solid black 1px box-shadow: 1px 2px background-color: yellow text-align: center box-sizing: border-box width: calc(100% - 80px)}
它有专用的关键字用来引用变量的值(var),和做表达式计算(calc),所以它可以肆无忌惮地用减号开头的标识符。
.foo { --widthA: 100px --widthB: calc(var(--widthA) / 2) --widthC: calc(var(--widthB) / 2) width: var(--widthC)}
一种感觉,在HTML的世界里,似乎很抵触用下划线。HTML/CSS/XML/XSL的关键字里,似乎都是用减号而不是用下划线。
思考语言只是一种约定吗?
小时候,一些读错的多音字,现在已经变成了正确的。因为大多数人都按照“错误”的在读,比如呆板,曝光,等等。
毕竟,语言的功用是交流,大多数人都能理解才是重要的,既然绝大多数人都认为它应该那么念,“将错就错”也没什么不好。而且,原来的那种“正确”的读音也没有反映出更多或更正确的本质。
我就职的上一家公司,到处都是下划线,比如在Linux内核代码里,如果看到下划线命名的文件,那基本上就是我们公司增加的。换了一家公司后,这种现象有过之而无不及,几乎凡是需要连接单词的地方,都是用下划线。
作为一个中老年码农,我应该高兴,这说明码农已经开始占领世界了。
那么,纠结用下划线还是减号,是不是像纠结生僻的多音字,或茴字有几种写法,变得不合时宜?我是否应该随大流?
但据我有限的观察,在英语的技术世界里,仍然是有区分地使用两者,并没有无脑用下划线。
一点坚持就是逻辑上我们需要这两种符号一种表示强连接,一种表示弱连接(如前所述)。两者并不完全是替代关系。
及倡议
下划线和减号都可用于连接字符串,这时它们的本质差别在于分词逻辑的不同。
下划线通常用于表示“强连接”形式上是连接的,逻辑上也是一个整体,在机器世界里通常会作为一个#34word#34;减号通常用于表示“弱连接”形式上是连接的,逻辑上是分隔的,通常会被机器作为多个#34word#34;两种连接符并存的字符串里,我们通常认为下划线具有更高的的“优先级”。在国内软件领域,个人观察,下划线有被滥用的迹象。但在英文世界里,在代码以外,基本仍然遵循英文书写的习惯,使用减号作为连接符。
所以我倡议如非不得已,尽量使用减号作为连接符。
概括地说,目标是给机器(比如编译器)看的领域,比如源代码和某些语言的文件名,使用下划线;目标是给人看的领域,比如UI,技术文章,遵循英文书写习惯,使用减号。这样具有更好的兼容性。
使用减号的连接
作为个人,入乡随俗,在某个特定的技术领域、特定的团体,以局部的规则和约定为优先。但另一方面,作为规范的制定者,要考虑“真正的主流”及其内在逻辑,不要轻易将规则扩大化。
减号下划线组合 下划线和减号的区别