相关疑难解决方法(0)

为什么缺少赋值运算符允许我修改Ruby常量而没有编译器警告?

在以下两个示例中,我执行相同的操作,创建一个常量String并使用concat方法对其进行修改.因为它是一个常量,所以我期望编译器警告,但是当我使用赋值运算符时,在第二个例子中只接收一个.为什么是这样?

X = "hello"
X.concat(" world")
puts X # no warning

X = "hello"
X = X.concat(" world")
puts X # warning: already initialized
Run Code Online (Sandbox Code Playgroud)

由于concat方法修改了字符串,这通常是我要做的,因为不需要使用分配运算符.那么,为什么赋值运算符的存在会导致编译器将这两个操作识别为不同?

ruby warnings constants concatenation

4
推荐指数
2
解决办法
300
查看次数

标签 统计

concatenation ×1

constants ×1

ruby ×1

warnings ×1