Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ruby中求解这个方程_Ruby - Fatal编程技术网

如何在ruby中求解这个方程

如何在ruby中求解这个方程,ruby,Ruby,我想创建一个文件,但我不能这样做 在Ruby中,无法使用您尝试过的方法从局部变量的名称中检索其值。实例变量有instance\u variable\u get,但据我所知,局部变量没有等价物 “path#{v}”是一个包含变量名称的字符串,因此如果使用eval对其进行计算,则eval的结果将是变量的值。因此,您可以执行以下操作: path1="c:/kabab.txt" path2="c:/kabab2.txt" for v in 1..2 puts "#{path}"#{v}" end pa

我想创建一个文件,但我不能这样做

在Ruby中,无法使用您尝试过的方法从局部变量的名称中检索其值。实例变量有
instance\u variable\u get
,但据我所知,局部变量没有等价物

“path#{v}”
是一个包含变量名称的字符串,因此如果使用
eval
对其进行计算,则eval的结果将是变量的值。因此,您可以执行以下操作:

path1="c:/kabab.txt"
path2="c:/kabab2.txt"
for v in 1..2
puts "#{path}"#{v}"
end
paths.each do |path|
  f = open(path, 'w')
  # use file here
end
但是,由于潜在的安全问题,在使用
eval
时始终需要小心

相反,我将把文件列表放在一个数组中

filename = eval("path#{v}")
open(filename, 'w')
并且做:

paths = ["c:/kabab.txt", "c:/kabab2.txt"]
或者,如果所有文件共享一个公共前缀和扩展名,则类似于:

path1="c:/kabab.txt"
path2="c:/kabab2.txt"
for v in 1..2
puts "#{path}"#{v}"
end
paths.each do |path|
  f = open(path, 'w')
  # use file here
end

在Ruby中,您无法使用您尝试过的方法从局部变量的名称检索其值。实例变量有
instance\u variable\u get
,但据我所知,局部变量没有等价物

“path#{v}”
是一个包含变量名称的字符串,因此如果使用
eval
对其进行计算,则eval的结果将是变量的值。因此,您可以执行以下操作:

path1="c:/kabab.txt"
path2="c:/kabab2.txt"
for v in 1..2
puts "#{path}"#{v}"
end
paths.each do |path|
  f = open(path, 'w')
  # use file here
end
但是,由于潜在的安全问题,在使用
eval
时始终需要小心

相反,我将把文件列表放在一个数组中

filename = eval("path#{v}")
open(filename, 'w')
并且做:

paths = ["c:/kabab.txt", "c:/kabab2.txt"]
或者,如果所有文件共享一个公共前缀和扩展名,则类似于:

path1="c:/kabab.txt"
path2="c:/kabab2.txt"
for v in 1..2
puts "#{path}"#{v}"
end
paths.each do |path|
  f = open(path, 'w')
  # use file here
end

哦,谢谢mikej,你真的很了解ruby,我还问了platinfo[“telnet_id”]我希望你还记得上次你告诉我的memikej会创建不同的文件名,比如kabab1.txt和kabab2.txt,我想使用loop创建不同的文件名???@amit是的,我记得你的另一个问题。我给出的示例使用循环来创建不同的文件名。如果这些建议仍然不能满足你的要求,请你再解释一下。但是mikej有一件事你告诉过我,我不能让你说,我们不能用它们的名字访问局部变量,但我喜欢a=10放a,我可以通过简单地说出它的名字来得到a的值对不起,如果我错了,如果我有
a=10
并且我有
b=“a”
b
是一个包含另一个变量名称的字符串,如果不使用
eval
,则无法获得
b
中指定的变量值10。在其他语言中,这是可能的,例如在PHP中,
$
可用于取消引用变量。e、 g.如果我在PHP中有
$a=10
$b=“a”
,那么
print$$b
将打印10。这与您在问题的原始代码中所做的非常接近。哦,谢谢mikej,您真的非常了解ruby,我还问了platinfo[“telnet_id”]我希望您还记得memikej,您上次告诉我的会创建不同的文件名,如kabab1.txt和kabab2.txt,我想使用循环创建不同的文件名???@amit是的,我记得你的另一个问题。我给出的示例使用循环来创建不同的文件名。如果这些建议仍然不能满足你的要求,请你再解释一下。但是mikej有一件事你告诉过我,我不能让你说,我们不能用它们的名字访问局部变量,但我喜欢a=10放a,我可以通过简单地说出它的名字来得到a的值对不起,如果我错了,如果我有
a=10
并且我有
b=“a”
b
是一个包含另一个变量名称的字符串,如果不使用
eval
,则无法获得
b
中指定的变量值10。在其他语言中,这是可能的,例如在PHP中,
$
可用于取消引用变量。e、 g.如果我在PHP中有
$a=10
$b=“a”
,那么
print$$b
将打印10。这接近于您在问题的原始代码中尝试执行的操作。