【发布时间】:2021-08-11 01:20:36
【问题描述】:
如果我尝试在Int32 上实现一个不会改变self 值的附加方法,它会起作用:
struct Int32
def double
self * 2
end
end
x = Int32.new 2
p! x.double # => 4
但是,一旦我尝试更改self,编译器就会给我一个错误,为什么?有没有办法做到这一点,还是在 Crystal 中完全不可能?
struct Int32
def six
self = 6 # This fails
end
end
我也在String 和Char 上试过这个,我得到同样的编译器错误:Error: can't change the value of self
【问题讨论】:
标签: crystal-lang