首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

双引号与括号

区别在于双引号内置换正常进行,而括号置换有可能会被阻止,如下图所示。变量s被赋值为Hello World,注意这里通过双引号避免了空格被当作分隔符处理。...第一个puts命令使用了双引号,可以看到所有置换都随之发生;第二个puts命令使用了括号,相应内部置换均被阻止。 ? 双引号另一常用情形是出现在嵌套命令中,且嵌套命令是外层命令参数一部分。...给变量b赋值时使用了反斜杠置换,给变量c赋值时使用了双引号加括号,其中双引号在最外层,给变量d赋值时使用了括号加双引号,其中括号在最外层,对比下来可以得出这样结论:在同时使用双引号和括号时,最外层做主...对于括号,如前文所述“括号置换有可能会被阻止”,这是因为括号功能稍微复杂一些,但总的来说遵循两个原则:第一个原则是如果括号是用做置换操作,则其内部置换操作会被阻止;第二个原则是如果括号用做界限符...如果需要双引号或括号作为普通字符出现在字符串中时,可通过反斜杠\置换,或者通过双引号和括号嵌套使用实现特定功能,如下图所示。 ?

2.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    编程语言简史:有人不喜欢括号,于是他发明了 Python

    他还发明了让摩尔定律变得过时Wirth定律(软件变慢速度比硬件变快速度更快),因为软件开发者会编写出连大型主机也没法跟上臃肿软件。...这在后来被证明是正确——在Electron.js被发明出来后 1972年 Dennis Ritchie在贝尔实验室上班上到无聊了,于是他决定写出带有括号C语言,这门语言取得了巨大成功。...1983年 Bjarne Stroustrup 注意到C在编译方面时间还不够多,于是他把自己能想到每一项功能都增加了进去,然后称之为C++。...1991年 Guido van Rossum不喜欢括号,于是他发明了Python,语法选择灵感来源自Monty Python(巨蟒剧团)和Flying Circus(飞行马戏团)。...他先是找到了Netscape然后说这门语言叫做LiveScript,但在代码评审期间Java变得流行起来,所以他们决定最好还是用括号,然后就把它更名为JavaScript。

    1.2K70

    编程语言简史:有人不喜欢括号,于是他发明了 Python

    编程语言有上千种,但是流行不过10来种,那些我们经常使用编程语言都是谁在什么时候创造出来呢?Casper Beyer为我们进行了整理。...1972年 丹尼斯·里奇(Dennis Ritchie )在贝尔实验室上班上到无聊时候,他决定发明带有括号语言,于是C语言诞生了,最终还取得了巨大成功。...之后,他又添加了分段错误等友好功能来提高工作效率。 倒腾出这门C语言后,他和贝尔实验室朋友心想要不做一个C演示程序,于是,一个叫做Unix操作系统又诞生了。...1991年 Guido van Rossum不喜欢括号,于是决定发明一种没有括号语言,然后又因为太喜欢英国肥皂剧《Monty Python飞行马戏团》,于是,就把该语言命名为Python。...他先是找到了 Netscape 然后说这门语言叫做 LiveScript,但在代码评审期间 Java 变得流行起来,所以他们决定最好还是用括号,然后就把它更名为 JavaScript。

    1K20

    我们在何时需要对Shell变量使用括号

    是否有一种是更受推荐? 回答 在上述特定示例代码中,没有区别。...但是,当你想要在字符串中扩展变量 foo 时,${} 中 {} 是有用: "${foo}bar" 因为 "$foobar" 将会扩展变量 foobar,而不是预期变量 foo。...变量名结尾后面通常是空格或换行符。但如果我们不想在打印变量值后接着打印空格或换行怎么办?这时就需要用括号告诉 Shell 解释器变量名结束位置。...括号还无条件需要在以下情况下使用: 扩展数组元素,如:${array[5]} 使用参数扩展操作,如:${filename%.*}(移除扩展名;剥离最小匹配) 扩展总数超过 9 位置参数,如:"{10...这既是为了一致性,也是为了避免像 foo_bar.jpg 这样意外,其中下划线成为变量名一部分并不明显。 你还可以在括号内进行一些文本操作: STRING=".

    18500

    使用双括号初始化集合,可别这么干

    Double Brace Initialization should not be used 前言 最近在修改sonar问题时,发现有人使用双括号初始化集合,提示可能发生内存泄漏。...:bob Thread name: Finalizer Object: sandy Gc happen 分析 匿名内部类持有外部类对象引用 双括号初始化时,可以直接使用外部类对象成员name。...当然这只是表面,接下来我们从字节码层面看看到底怎么回事。 使用了匿名内部类 双括号初始化方法 非双括号初始化方法 编译后产生文件 可以发现,多了一个内部类:A$1.class。...查看内部类字节码 拥有一个外部类成员变量 通过构造方法传入了外部类对象引用 将外部类对象引用赋值给成员变量 执行我们写put方法 内部类继承于HashMap 发生了内存泄漏 使用非双括号初始化...mapsandy被回收了,而使用双括号初始化mapbob却没有被回收。

    94430

    Python中类-带括号与不带括号区别

    所以一个类下面可以有多个方法和多个属性,属性可以只属于某个方法,也可以是全局。   类创建   python3创建类方式有两种,一种带括号,一种不带括号。...创建类时候,可以不带括号,也可以带,也可以显示继承object,如果带个()空括号,其实也是隐士继承了object。...在 Python 中,变量就是变量,它没有类型,我们所说"类型"是变量所指内存中对象类型。   等号(=)用来给变量赋值。   ...“类提供默认行为,是实例工厂”,打个比方,车是类,别克凯越是类实例。     类实例化只有一种方式,就是实例化时候,需要带括号,这个括号根据实际情况可以为空,也可以传参。...上面的结果告诉我们:python类,带括号是实例化,不带括号是赋值。(记住这个)   总结  以上内容是一个简单知识点,小知识点容易被忽略,不清楚可以再复习一次。

    2.6K60

    shell中括号(小括号,中括号,大括号

    一、小括号,园括号()   1、单小括号 ()     ①命令组。括号命令将会新开一个子shell顺序执行,所以括号变量不能够被脚本余下部分使用。...,方括号[]   1、单中括号 []     ①bash 内部命令,[和test是等同。...如果我们不用绝对路径指明,通常我们用都是bash自带命令。if/test结构中左中括号是调用test命令标识,右中括号是关闭条件判断。...④bash把双中括号表达式看作一个单独元素,并返回一个退出状态码。 三)大括号括号 {}   1、常规用法。     ①大括号拓展。(通配(globbing))将对大括号文件名做扩展。...与小括号命令不同,大括号命令不会新开一个子shell运行,即脚本余下部分仍可使用括号内变量。括号命令间用分号隔开,最后一个也必须有分号。

    3.9K10

    python实现括号匹配

    主要思路: 首先设置两个列表分别存放是各种括号括号和闭括号,然后遍历给定字符串,分如下几种情况: 1.字符串首字符出现在闭括号列表中,直接结束,输出错误 2.字符串长度不为偶数,直接结束,输出错误...3.对原始字符串列表化去重,如果去重后列表长度不为偶数直接结束,输出错误 4,遍历字符串,将属于开括号集合括号加入到列表中,当遇上一个闭括号时候计算该闭括号在闭括号列表中索引与当前列表最后一个开括号在开括号列表中索引是否一致...,一致则继续,否则直接结束,输出错误 主要是在长度很大时候可以尽快判断一些比较明显错误模式,节省时间 #!...usr/bin/env python # encoding:utf-8 def bracket_mathch(one_str): ''''' 括号匹配 ''' tmp_list

    2.2K10

    OC中一些编程写法--({"添加代码"}) 括号用法

    imageView.clipsToBounds = YESS; [view addSubview:imageView]; view; }); 这个问题严格上讲和Objective-C没什么太大关系...,这个是GNU C对C扩展语法 Xcode采用Clang编译,Clang作为GCC替代品,和GCC一样对于GNU C语法完全支持 你可能知道if(condition)后面只能根一条语句,多条语句必须用...{}阔起来,这个语法扩展即将一条(多条要用到{})语句外面加一个括号(), 这样的话你就可以在表达式中应用循环、判断甚至本地变量等。...表达式()最后一行应该一个能够计算结果子表达式加上一个分号(;), 这个子表达式作为整个结构返回结果 这个扩展在代码中最常见用处在于宏定义中

    81620

    永远不要使用双括号初始化实例,否则就会OOM!

    “怎么能用双括号初始化实例呢?”...老张:“使用双括号初始化实例是会导致内存溢出啦!侬不晓得嘛?”...于是片刻敷衍,待老张离去之后,才悄悄打开了 Google,默默搜索了一下。 小王:哦,原来如此...... 双括号初始化分析 首先,我们来看使用双括号初始化本质是什么?...双括号替代方案 即使声明为静态变量可以避免内存泄漏,但依旧不建议这样使用,为什么呢? 原因很简单,项目一般都是需要团队协作,假如那位老兄在不知情情况下把你 static 给删掉呢?...总结 本文我们讲了双括号初始化因为会持有外部类引用,从而可以会导致内存泄漏问题,还从字节码以及反射层面演示了这个问题。

    1.7K30
    领券