记得以前做JS的时候,经常使用字面量方式来声明变量,特别是在循环里面,做了RUBY以后也一直沿用这个习惯.
今天得空来测试一下
require "benchmark"
Benchmark.bm do |x|
x.report("Array.new") do
10000000.times do
a = Array.new
end
end
x.report("[]") do
10000000.times do
a = []
end
end
end
结果如下:
user system total real
Array.new 12.625000 0.000000 12.625000 ( 12.640000)
[] 11.281000 0.578000 11.859000 ( 11.860000)
做个一千万次循环,结果差了个0.8秒,可见在RUBY里面,两者性能几乎接近,采用字面量式声明略快那么一点点.
纯属无聊的一个消遣..
分享到:
相关推荐
此外,字符串字面量支持不同的编码格式,通过`u`、`b`等前缀指定。 2. **编码处理**:Ruby 1.9 开始强制处理字符串的编码问题,每个字符串都有自己的编码类型,这大大增强了对多语言文本的支持。`encoding`关键字可...
4. 大字符串字面量可以使用heredoc语法(如),这样可以方便地定义多行字符串,Ruby会保留字符串中的格式和换行。 字符串操作方面,Ruby支持使用“+”来连接字符串(需要将非字符串对象通过to_s方法转换),使用...
2. **字符串字面量**:当字符串中不需要插值时,使用单引号`''`而非双引号`""`。 3. **实例变量连接**:在拼接包含实例变量的字符串时,避免使用`{}`,而应直接使用变量名。 4. **字符串追加**:使用`操作符代替`+`...
在处理字符串时,还要考虑到字符串连接操作,例如两个相邻的字符串字面量在解析后应合并为一个。 4. **注释**:注释是程序员用来提高代码可读性的工具。LR(1)解析器需要识别不同类型的注释(如单行注释和多行注释)...
19.1 一个较为激进的示例:Ruby on Rails框架中的ActiveRecord库 396 19.2 使用动态特征实现Scala 中的动态调用 397 19.3 关于DSL的一些思考 402 19.4 本章回顾与下一章提要 402 第20章 Scala的领域...
Swift支持类型的隐式声明,同时也提供了数值型字面量的多种书写方式和类型转换的规则。布尔值和元组在Swift中也有着广泛的应用,元组可以将多个值组合成一个复合值。可选类型(Optional)是Swift语言的一个创新特性...
- **字面量**:解释Slice中的字面量及其用法。 ##### 1.3.8 接口、操作和异常 - **接口**:解释接口的概念以及如何在Slice中定义接口。 - **操作**:介绍如何定义接口中的操作。 - **用户异常**:解释如何定义和...
7. **二进制字面量和下划线分隔**:允许使用二进制数字表示(如0b1010)以及在数字中使用下划线来提高可读性(如1_000_000)。 8. **集合工厂方法**:在集合类如ArrayList、HashSet和LinkedHashMap中添加了静态工厂...
- **常量和字面量**:描述了如何在Slice中声明和使用常量及字面量。 - **接口、操作与异常**: - **操作**:定义了对象能够执行的方法。 - **用户定义的异常**:描述了如何定义和处理自定义异常。 - **运行时...
此外,Go语言还支持原始字符串字面量,通过反引号`…`包裹起来,可以包含任意字符而不需转义。 ##### 5. UTF-8编码 Go语言中的字符串默认使用UTF-8编码,当处理非英语字符时,这尤为重要。UTF-8编码使用1到4个字节...
5. **二进制字面量和下划线分隔数字**:开发者现在可以使用二进制前缀(0b/0B)来定义二进制数,并可以在数字中使用下划线(_)来提高可读性,如`int num = 0b1010_1010`。 6. **改进的switch语句**:Java 7的...
6. **二进制字面量和下划线分隔数字**:Java 7允许使用二进制前缀(0b/0B)来表示二进制数字,同时也允许在长整型和浮点型数字中使用下划线(_)作为分隔符,提高了代码的可读性。 7. **文件系统API增强**:Java 7...
3. **文本块(Text Blocks, JEP 328)**:为了解决多行字符串的繁琐处理,JDK11引入了文本块,这是一种新型的字符串字面量,可以方便地处理和展示多行文本,减少了转义字符的使用。 4. **动态类型语言支持(JEP 330...
C# 4.0允许在编译器层面指定默认的命名空间导入,使得无需在每个文件中重复声明常用的命名空间。这不仅减少了代码量,还提高了代码的可读性。 #### 4. 可选参数和参数名称 (Optional Parameters and Named ...
在CoffeeScript中,函数表达式、闭包和对象字面量等常见概念都有其独特的写法。Atom Snippets可能包含了许多常用的CoffeeScript语法糖,如类定义、函数定义、链式调用、箭头函数以及条件赋值等。有了这些片段,编写...
- **字面量**: `{ key: value }`。 - **构造函数**: `new Object()`。 - **`Object.create` 方法**: `Object.create(obj)`。 - **操作对象**: - **查看属性**: `obj.propertyName` 或 `obj["propertyName"]`。 ...