Ruby - 每个函数调用仅定义一次的变量

时间:2017-06-13 08:11:49

标签: c++ ruby variables recursion static

更具体地说,我想在ruby中找到创建"静态"的方法。像C ++中的变种。每个函数调用只定义一次这些变量。即使函数是递归的。

现在我使用全局变量,但它并不好,导致代码混乱。 Bellow I用C ++和Ruby粘贴代码。

def my_function
  my_var = 0
  if my_var < 10
    my_var += 1
    my_function
  else
    puts my_var
  end
end

在Ruby中,我们有无限循环,因为my_var永远不会是10

#include <iostream>
using namespace std;
void my_method(){
  static int my_var = 0;
  if(my_var < 10){
    my_var += 1;
    return my_method();
  } else{
    cout << my_var;
  }

int main(){
  my_method();
}

在C ++程序中将打印10。

那么伙计们,你知道Ruby中是否存在这样的东西吗?而且我不想使用全球变量。我真的不喜欢他们。

问候并感谢 西蒙

0 个答案:

没有答案