这个题目其实有点标题党了,其实本篇文章主要内容应该是说“代码中的美元符号(dollar sign)”。想总结一下我所看到的美元符号在代码中的起到的作用,当然了并不是说它作为格式化字符时出现在数字前当钱币单位的作用。

有效的变量名

在取变量名的时候,我们通常都只使用字母,数字,下划线,而且数字不能作为开头。但是在很多编程语言中,对于变量名的限定更宽泛,很多特殊字符也可以作为变量名,当然也包括$。

JavaScript

JavaScript允许$符号作为有效的识别来当做变量名或者方法名来使用。最著名的例子就是jQuery了,整个使用过程中到处都是$。$只是jQuery变量的一个别名,但是也正式$的短小、高可识别度,在编写代码时带来了很多的便利。

$("button").click(function() {

$("p").toggle();

});

对于还能用哪些奇怪的字符作为JavaScript的变量,可以通过JavaScript variable name validator来检验有效性。

Java

Java其实也可以将$作为有效的变量,只是它不能作为用户定义,而是预留给编译器使用。

Variable names are case-sensitive. A variable’s name can be any legal identifier — an unlimited-length sequence of Unicode letters and digits, beginning with a letter, the dollar sign “$“, or the underscore character “_“. The convention, however, is to always begin your variable names with a letter, not “$” or “_“. Additionally, the dollar sign character, by convention, is never used at all. You may find some situations where auto-generated names will contain the dollar sign, but your variable names should always avoid using it. A similar convention exists for the underscore character; while it’s technically legal to begin your variable’s name with “_“, this practice is discouraged. White space is not permitted.

比如说嵌套类(nested class),在编译过后实际的类名都是各层嵌套类以$为分隔符“粘合”在一起。看看下边的简单示例:

packagecom.ider;public classDollar {static classSign {

}public static voidmain(String[] args) {

Dollar.Sign sign= newDollar.Sign();

System.out.println(sign.getClass().getName());

}

}

输出结果为:

//com.ider.Dollar$Sign

占位转义

正则表达式

$在正则表达式中,代表字符串的结尾位置。比如下边的表达式就是用来检查字符串是否以数字结尾的句子。

var reg = /\d$/;

reg.test(str);

在一些正则表达式的实现中,$还可以作为表达式分隔符(delimiter)以表示所包裹的内容是表达式的一部分,比如PHP就是如此:

//match string that contain 'php'

$pattern = '$php$';

preg_match($pattern, $subject, $matches);

只是表达式的内容部分若遇到要用$,就不得不用斜杠(\)来转义了,如果又要让其真实去匹配$符号而非结尾,又要进一步转义,然后就晕了。所以一般并不会使用$来做分隔符。一般还是会用反斜杠(/)来拼配JavaScript的格式,或者用#因为它被使用到较少。

正则表达式除了可以匹配,更重要的是用来替换,而替换中最强大的就是向后引用(Back-Reference)。多数支持正则表达式的文本编辑器都会使用反斜杠加数字(\1, \2, \3 …)来表示向后引用的匹配内容。不过JavaScript则用$加数字来($1, $2, $3 …)表示。

var friends = 'friends of Ider, friend of Angie';var result = friends.replace(/(friends?) of (\w+)/g, "$2's $1");

CSS

CSS的属性选择器(Attribute Selector),不仅可以针对包含了指定属性的标签进行样式设置,还能针对属性所包含的内容。其中一个就是指定属性内容是以什么为结尾的,这与正则表达式很相似,同样也很好用。比如希望针对jpg格式的图片添加边框让她看起来像画框,就可以

img[src$= ".jpg"]{border:10px solid #DDDDDD;

}

取变量内容

PHP

在PHP的变量中,总是会带有$符号(define的常量除外),它可以看做是PHP变量的一部分,但是不严格地说它更像是取变量所包含的内容。比如下边的代码:

$x=7;$y="x";echo $$y;

其结果是

7

第一个$去了y中的内容为x,第二个$取了x中的内容为7。另外->也可以理解以对象为目标取内容。

不只是PHP,Shell Script、Perl也是一样的处理,像Shell Script就比较全别,不带$的语句进行变量赋值,使用$来获取变量的内容。

其它

Bash Shell

Bash Shell里面,$常常会被用来当做指令提示字元(Command Prompt)。我们也可以修改环境变量PS1来改变提示字元。

此外,$除了之前提到的当做取变量的内容外,同时也是一个变量,它保存的是当前进程id。

iBatis

这是一个Java的ORM框架,不过我第一次接触它是移植在.net平台上的iBatis.net。在这个框架里,用$包裹变量则表示要对其内容进行转义以防止SQL注入攻击。或者使用#不进行转义。

Visual FoxPro

其它的其它

还有其它代码中你看到$的不同用法,欢迎补充。不知道¥符号是否也能在代码中有不同的功能呢。

java美元兑换_代码中的美元$相关推荐

  1. java程序阅读题6,阅读以下说明和java程序,填补代码中的空缺(1)~(6),将解答填入答题纸的对 - 信管网...

    阅读以下说明和Java程序,填补代码中的空缺(1)-(6),将解答填入答题纸的对应栏内. [说明] 很多依托扑克牌进行的游戏都要先洗牌.下面的Java代码运行时先生成一副扑克牌,洗牌后再按顺序打印每张 ...

  2. 如何应对java服务器宕机_代码中如何应对缓存服务器宕机的情况

    今天在演练这样一个场景--假如所有缓存服务器都宕机,而且不能很快恢复,并且假设数据库服务器能够支撑,在代码中如何应对这样的情况? 之前的做法是在读缓存的地方捕获异常并写入日志,然后直接从数据库读取数据 ...

  3. java 代码坏味道_代码中的坏味道

    前言 在日常生活中,当我们买的水果放久了之后会发出一种难闻的气味("坏味道"),这个时候我们就应该把它扔掉.同样,代码也有"坏味道",当然确定什么是和不是代码& ...

  4. 玩物得志Java笔试题_代码规范利器-CheckStyle

    本期内容分为五个部分,阅读时长预估7分钟: 使用背景 CheckStyle使用意义 CheckStyle安装与使用 CheckStyle检查配置示例 落地使用情况及效果 使用背景 玩物得志目前还处在一 ...

  5. java输出日志_java代码中如何正确使用loggger日志输出

    java代码中如何正确使用loggger日志输出 发布时间:2019-06-28作者:spider阅读(2980) 当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统, ...

  6. c# mysql代码中写事务_代码中添加事务控制 VS(数据库存储过程+事务) 保证数据的完整性与一致性...

    [c#]代码库代码中使用事务前提:务必保证一个功能(或用例)在同一个打开的数据连接上,放到同一个事务里面操作. 首先是在D层添加一个类为了保存当前操作的这一个连接放到一个事务中执行,并事务执行打开同一 ...

  7. java防御性编程_代码防御性编程的十条技巧

    1 什么是防御性编程? 顾名思义,防御性编程是一种细致.谨慎的编程方法.为了开发可靠的软件,我们要设计系统中的每个组件,以使其尽可能的"保护"自己.我们通过明确地在代码中对设想进行 ...

  8. pycharm缩进对齐线_代码中的缩进线

    我在2016年伦敦Golang英国会议上谈论代码缩进线 在近期伦敦举行的 Golang 英国会议 上,我在地道的Go 语言窍门 交流(幻灯片)中讲到关于代码中的缩进线, 我想在这里稍微解释一下. 缩进 ...

  9. java 魔鬼数字_程序中的魔鬼数字

    在代码中使用魔鬼数字(没有详细含义的数字.字符串等)将会导致代码难以理解,应该将数字定义为名称有意义的常量. 将数字定义为常量的终于目的是为了使代码更easy理解,所以并非仅仅要将数字定义为常量就不是 ...

最新文章

  1. 全球及中国商用杠铃架行业营销策略及投资建议分析报告2021-2027年版
  2. [Nginx]用Nginx实现与应用结合的訪问控制 - 防盗链
  3. Sentinel(三)之如何使用
  4. 小程序中 使用fixed自定义弹窗时,底部长页面禁止滚动
  5. java调用app接口代码_java servlet手机app访问接口(二)短信验证
  6. java判断两个时间区间是否有重合
  7. echarts js 删除框选数据_ECharts进行区域选择
  8. Oauth协议是否会泄露用户的密码
  9. 使用resnet, inception3进行fine-tune出现训练集准确率很高但验证集很低的问题
  10. Linux-lamp
  11. hdu 1561(树形DP+背包)
  12. 3月3 pytorch模型保存的.pt, .pth, .pkl的pytorch模型文件,只是后缀不同而已(仅此而已)
  13. 使用Visio2003更新SQL2005数据库
  14. 0.1uf 电容浅析
  15. 使用 Learner Lab - 学生
  16. 三门问题的扩展用c++模拟
  17. 从mysql2ch到synch,一次重构与升级
  18. 沁恒CH552 USB学习之旅(一)
  19. Latex 常用括号类表达式
  20. 德州INA139NA/3K 电流监控器IC 丝印N139

热门文章

  1. Python实训day4
  2. 从零开始搭建python flask+vue 小型web项目以及flask_sqlalchemy访问数据库
  3. project2010根据法定节假日更改工作时间
  4. VC常见LINK处理方法
  5. 字符编码的常用种类介绍
  6. 奇虎360 2013校园招聘笔试题
  7. oracle创建本地表空间,本地管理表空间——大家继续讨论!
  8. python画rgb渐变色_请问如何在matplotlib中画出自定义渐变色?
  9. 【我的DOT语言学习之旅】 学习DOT语言并使用Graphviz软件来打开.dot文件
  10. X Window 程式设计入门--第三章 绘图(Graphic)