关于下划线,你应该了解的几个特殊用途

下划线和中划线,虽然模样长的都差不多,但程序员对她们的喜爱程度却是相差十万八千里。下划线在程序员眼里,是一个魔法师,而中划线只是一个普通字符而已。

一、MySQL数据库

在SQL语句中,like关键字会把下划线解释为通配符。

With LIKE
you can use the following two wildcard characters in the pattern:

  • %
    matches any number of characters, even zero characters.
  • _
    matches exactly one character.

** 建议:数据中含有下划线时,使用like时必须要小心。**

二、Nginx/http-header

the "underscores_in_headers" directive; now nginx does not allows underscores in a client request header line names.

建议:http header名字里面不要包含下划线

三、Nginx/upstream

upstream名称,在某些条件下,可以当成主机名传给后端Java应用。当upstream名称中含有下划线的时候,Java会把主机名当做域名来按照[RFC2396]解析,结果就会返回Null,在某些版本的Spring框架里就会触发服务器内部错误,此类问题相当隐蔽。

域名命名规则

domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum

建议:upstream名称不包含下划线,实践中使用驼峰命名规范貌似比较合适

四、虚变量

多种语言使用下划线代表虚变量

  • Lua
  • Python
  • Erlang
  • Golang

五、交互解释器

返回交互解释器中最后一次执行语句的结果。

  • CPython
  • Pypy
  • Node

六、变量名

高级编程语言,大多都允许使用下划线作为变量名的组成部分,基本都是延续C语言的命名规范。

  • C
    变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头
  • Lua
    变量名可以由字母,数字和下划线。它必须以字母或下划线开头。
  • Python
    标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’)。
    标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组成。

你可能感兴趣的:(关于下划线,你应该了解的几个特殊用途)