当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby String.new用法及代码示例


本文简要介绍ruby语言中 String.new 的用法。

用法

new(string = '') → new_string
new(string = '', encoding: encoding) → new_string
new(string = '', capacity: size) → new_string

返回一个新字符串,它是 string 的副本。

不带参数,返回带有 Encoding ASCII-8BIT 的空字符串:

s = String.new
s # => ""
s.encoding # => #<Encoding:ASCII-8BIT>

使用单个字符串参数 string ,返回 string 的副本,其编码与 string 相同:

s = String.new("Que veut dire \u{e7}a?")
s # => "Que veut dire \u{e7}a?"
s.encoding # => #<Encoding:UTF-8>

"" 或 here-documents 等文字字符串始终使用 script encoding ,与 String.new 不同。

使用关键字 encoding ,返回具有指定编码的 str 的副本:

s = String.new(encoding: 'ASCII')
s.encoding # => #<Encoding:US-ASCII>
s = String.new('foo', encoding: 'ASCII')
s.encoding # => #<Encoding:US-ASCII>

请注意,这些是等效的:

s0 = String.new('foo', encoding: 'ASCII')
s1 = 'foo'.force_encoding('ASCII')
s0.encoding == s1.encoding # => true

使用关键字 capacity ,返回 str 的副本;给定的capacity 可能会设置内部缓冲区的大小,这可能会影响性能:

String.new(capacity: 1) # => ""
String.new(capacity: 4096) # => ""

stringencodingcapacity 参数可以一起使用:

String.new('hello', encoding: 'UTF-8', capacity: 25)

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 String.new。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。