执行位于数组内的ruby语句

use*_*230 2 ruby arrays permutation

我想知道是否可以在数组中保存一些ruby语句,如:

    a = 1
    b = 0
    statements = ['a += 1','b = a + 4']
    statements.each { |s| s.execute }
Run Code Online (Sandbox Code Playgroud)

我想要这样做的原因是能够使用Array置换来执行数组中语句子集的每个组合.

也许我让自己变得困难,并且有一种更简单(也许更明显)的方式.

感谢任何帮助.

Mat*_*att 6

正如LoïcFaure-Lacroix建议的那样,最好使用lambdas:

a = 1
b = 0
statements = [ lambda{a += 1}, lambda{b = a + 4} ]
statements.each(&:call)
Run Code Online (Sandbox Code Playgroud)

执行后,这个离开a == 2b == 6.