可以在Ruby中使用指针吗?

use*_*312 22 ruby

我认为Ruby被解释为C.如果是这样,我如何使用指针和其他功能的概念作为C环境的一部分?我们如何利用Ruby的简单性来利用C的强大功能?

und*_*gor 26

在Ruby中,(几乎)每个变量实际上都是一个对象的引用/指针,例如

a = [0, 1, 23]
b = a
a << 42
p b
Run Code Online (Sandbox Code Playgroud)

将给予[0, 1, 23, 42]因为ab指向同一个对象.

所以事实上,你一直在使用指针.

如果你想像在C中那样进行指针运算,那么Ruby是不可能的.

  • 整数不是那么特别.`b + = 1`实际上是`b = b + 1`,其中`b + 1`导致一个新的对象被分配给`b`."a"的值保持不变,因为它现在是一个不同的对象. (5认同)
  • 不适用于整数对象......`a = 1; b = a; b + = 1; pa;`输出1 (2认同)
  • 该规则不适用于基本类型,所有语言常量必须通过副本分配,否则在执行a = 1时,您将赋予变量"a"覆盖常量1的可能性 (2认同)