defの多重使用について

投稿者:Material 305033 1 mini cfm_ 投稿日:2016/06/19 15:59

rmakeでもdefを二重にできるのか?と思ったので試してみたところ、
一応使用できるが、変数を保持しないため役に立たないと分かった。

これは思った通りに動く。
def b()
  def a()
    speak("a") # 「a」と表示
  end
  a()
end
b()


変数を保持はしない。
def b()
  s="a"
  def a()
    speak(s) # line: 4 not defined variable : s
  end
  a()
end

b()



関係ないけれど、再起ループは何回やっても大丈夫そうです。
(少なくとも10万回は大丈夫、ただし10万も繰り返すと数秒かかる)
setVariable("a",0)
def b()
  setVariable("a",getVariable("a")+1)
  if (getVariable("a")%10000)==0
    speak(getVariable("a"))
  end
  b()
end
b()

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Cdv30200 aoi icon mini aoihikawa(投稿日:2016/06/19 16:59, 履歴)
ローカル変数は
ユーザ関数間を通らないので、

ユーザ関数でローカル変数を引き継ぎたい場合、
引数と戻り値を指定することで
値を使用することが出来るようになります

(なお、通常変数はユーザ関数間をそのまま引き継げます)

参考 第08回 ユーザ定義関数をマスターしよう