當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。