gpt4 book ai didi

ruby - 在 Ruby 中卡住变量不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:04 28 4
gpt4 key购买 nike

<分区>

我正在学习 Ruby,我刚刚发现在使用带变量的 Object#freeze 方法时有一些有趣的行为。

在我卡住一个变量(FixnumArray)之后,我仍然可以修改它!这很奇怪,因为就我而言这不应该发生并且应该引发 TypeError

这是我的代码:

test = 666
var = 90
#ok
var += 5

puts "var.frozen? #{var.frozen?}"
var.freeze
puts "var.frozen? #{var.frozen?}"

var = test
puts "var = #{var}"

数组也是如此:

test = [666]
var = [90]
#ok
var += [5]

puts "var.frozen? #{var.frozen?}"
var.freeze
puts "var.frozen? #{var.frozen?}"

var = test
puts "var = #{var}"

但是当我在卡住后尝试将某些东西插入数组时,它会像预期的那样引发错误:

test = [666]
var = [90]
#ok
var += [5]

puts "var.frozen? #{var.frozen?}"
var.freeze
puts "var.frozen? #{var.frozen?}"

var << test
puts "var = #{var}"

谁能给我解释一下这个问题?看起来很奇怪。

编辑 我使用的是 Windows XP + Ruby 1.9.3-p429

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com