• 締切済み

グローバル変数を使いたいのですが。【Ruby】

osamuyの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

def a( v ) ... end と定義して、bbbの中で、a( hoge )と渡してあげれば良いのでは。

関連するQ&A

  • Ruby インスタンス変数@fooを持つClass Fooの中ので関数fooを呼ぶ

    #!/usr/bin/ruby def foo(arg) arg.upcase end def bar(arg) arg.upcase end class Foo attr_reader :foo def initialize(arg) @foo = foo(arg) #@foo = bar(arg)とすれば期待した結果が得られる end end f=Foo.new("hoge") puts f.foo 上記実行するとエラーになります。 Class Fooの中のでfooといえば、インスタンス変数@fooであって、関数のfooではないって事なのでしょうか。 インスタンス変数@fooを持つClass Fooの中ので関数fooを呼ぶことはできないのでしょうか?

  • Rubyの関数定義

    Rubyで関数を定義し、呼び出すとエラーになります。 sub1() #sub1の呼び出し ・・・ def sub1() ・・・ end のようにすると、エラーになります。 def sub1() ・・・ end sub1() #sub1の呼び出し のようにするとエラーになりません。 関数の定義を呼び出し箇所のソースの後ろで定義してもエラーにならない方法はないのでしょうか。 ご存じのかた、いらしたら教えて下さい。

  • rubyで変数から指定したバイト読むには?

    たとえば、 Class Hoge initialize(arg)  @data=arg end def read(size)  @dataからsize分読んで返す。 end end みたいなクラスを hoge=Hoge.new(aaa) puts hoge.read(1024) puts hoge.read(1024) みたいに使いたいです。 指定したバイト分読むってどうするんですか? ご教授の程、宜しくお願いいたします。

    • ベストアンサー
    • Ruby
  • rubyでScalaのようにコールバックを変数として定義するには?

    rubyでScalaのようにコールバックを変数として定義するには? 最近Scalaの勉強を始めました。自分の一番好きな言語はrubyなので、比較しながら勉強してます。 参考書によると、関数をオブジェクトとして扱えるのがScalaの特徴との説明がありました。例えば、以下のような例なのですが、(行頭スペースは全角) class Kuku(a:Int,b:Int){  def calc(func:(Int,Int)=>String):String={   return func(a,b)+a*b  } } val f1=(a:Int,b:Int)=>a+"*"+b+"=" println(new Kuku(3,5).calc(f1)) これをrubyで書くと、(行頭スペースは全角) class Kuku  def initialize(x,y)   @x=x   @y=y  end  def calc   yield(@x,@y)+(@x*@y).to_s  end end puts Kuku.new(3,5).calc{|a,b| a.to_s+'*'+b.to_s+'='} とまでは書けたのですが、コールバック(ブロックパラメータの部分)、上記例だと |a,b| a.to_s+'*'+b.to_s+'=' の部分 を変数として定義(Scalaの例のf1として定義するところ)する方法を知りません。 このように関数を変数として定義する事ってrubyではできないと考えるのですが、そういった認識で間違いないでしょうか? ご指導の程、よろしくお願いいたします。

    • ベストアンサー
    • Ruby
  • C言語グローバル変数

    C言語で、 aaa.c にglobal変数 gTest[2]; を書いて、 別のbbbb.cからgTest[0]の値を参照するにはどうしたらよいでしょうか? aaa.cとbbb.cは異なる機能なので、 bbb.cからgTest[0] の値を直接編集させたくありません。 aaa.hに gTest[2];を書くしかないのでしょうか? aaa.hに gTest[0]の値を取得するマクロを定義してbbb.cにはそのマクロを使ってもらいたいのですが、可能でしょうか?

  • 【シェル】while文の変数定義について

    OS:Solaris10 sh:Bシェル お世話になります。 シェルの冒頭で定義した変数をwhile文の中で読み込ませたいです。 現状のシェルは下記の通りです。 ---- #!/bin/sh # *** 変数定義 *** AAA1=Spring BBB1=Summer AAA2=Autumn BBB2=Winter # *** メイン処理 *** i=1 while [ $i -le 2 ]; do AAA=AAA$i BBB=BBB$i echo ${AAA} echo ${BBB} i=`expr $i + 1` done ---- しかし、出力される結果は下記のようになってしまいます。 AAA1 BBB1 AAA2 BBB2 これを冒頭の「*** 変数定義 ***」で定義した値を読み込ませ、下記のような出力結果を得たいです。 Spring Summer Autumn Winter どうかご教授ください。

  • Ruby evalで代入

    #!/usr/bin/ruby str='hoge="abc"' eval(str) puts hoge 上記実行の結果エラーになってしまいますが、 evalを使って変数に代入するの方法ってあるのですか?

  • Rubyで\を\\に置換したい。

    Rubyで"\"マークを"\\"に置換しようとして、以下の様に プログラムを書きましたが、うまくいきません。 "\\aaa"となるようにするには、どうしたらよいでしょうか? %cat aa.txt \aaa %a aa.txt \aaa %cat a #!/usr/bin/ruby while l = gets print l.gsub(/\\/,'\\\\') end

  • Ruby

    #!/usr/local/bin/ruby class Foo def []=(x,y) print "Hello,",x,y,"!\n" end end bar = Foo.new bar["wor"] = "ld" 上記実行結果は Hello world! になるのですが、これが理解できません。 上手く説明してくれませんか?

  • rubyでメソッド内で引数名、値を取得

    Rubyでメソッドの引数名をメソッド内部で取得するような事は可能でしょうか? def hoge(a,b,c) # ここでa,b,cの引数名、またその値を取得 # 例えば、{:a=>1, :b=>2, :c=>3}のようにHashの形式で得るなど。 end local_variablesだと、引数も含まれますがその他で定義したものも拾ってしまうため、他の方法を探しています。 わかる方がいれば教えていただけますでしょうか。