Ruby中的冻结对象

Eph*_*era 7 ruby arrays string

在Ruby中,对于一个StringArray(等)对象来说,"冻结"是什么意思?设置或修改此属性的方式/位置?

saw*_*awa 8

这意味着你无法修改它.你可以通过freeze方法设置它.

s = "a"
Run Code Online (Sandbox Code Playgroud)

concat 修改字符串实例.

s.concat("b")
# => "ab"
Run Code Online (Sandbox Code Playgroud)

冻结字符串时:

s.freeze
Run Code Online (Sandbox Code Playgroud)

那么,你不能再申请concat了.

s.concat("c")
# => RuntimeError: can't modify frozen String
Run Code Online (Sandbox Code Playgroud)

但是,您可以应用不修改接收器的方法:

s + "c"
# => "abc"
Run Code Online (Sandbox Code Playgroud)