• 締切済み

Ruby

koko_u_uの回答

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.1

>の意味わかる方、教えてください 意味はありません。

関連するQ&A

  • Ruby の 文法に困ってます。

    以下のようなソースの場合、to_sメソッドは何時呼ばれているのでしょうか。またどういう意味を成しているのでしょうか。 Ruby初心者のためご教授頂けないでしょうか。 よろしくお願いします。 class Vector   attr_accessor :x, :y   def initialize(x=0, y=0)     @x = x     @y = y   end   def length     Math::sqrt(@x ** 2 + @y ** 2)   end   def to_s      "(#{@x},#{@y})"   end   def <=> other     length <=> other.length   end end arr =[] arr << Vector.new(2,2) arr << Vector.new(3,2) arr << Vector.new arr.sort.each do |item|   puts item end 結果は以下になります。 (0,0) (2,2) (3,2)

    • ベストアンサー
    • Ruby
  • 【ruby】 『クラスの生成に失敗』を表現したい

    『クラスの生成に失敗』を表現したいのです。 newの戻り値にnilやfalseを返せばよいと考え、 以下の様に書いてみました。(行頭は全角スペースです。) class Hoge  def initialize(arg)   return arg  end end h = Hoge.new(false) STDERR.puts 'err' unless(h) errはputsされませんでした。(グーグルで調べるとinitializeのreturnは、返ってこないそうでした。) そこで以下の様に書きました。(行頭は全角スペースです。) class Hoge  attr_reader :stat  def initialize(arg)   @stat = arg  end end h = Hoge.new(false) STDERR.puts 'err' unless(h.stat) なんか、ものすごく我流になってる気がします。。。 アドバイスをお願いいたします。

    • ベストアンサー
    • Ruby
  • 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 undefined method

    class Hoge def body "aaa" end end def up(arg) arg.upcase end res=Hoge.new res.body = up(res.body) puts res.body 上記を実行すると、undefined method `body=' for #<Hoge:0x2b36454> (NoMethodError) になります。 最後の2行を以下のように変えるとうまく動作します。 tmp=res.body tmp = up(tmp) puts tmp この理由が理解できません。 説明して頂けませんか?

  • 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のプログラム

    今、サンプルとしてこれがあるんですけど、これは交点を出力するものなんですが、線を出力するにはどこを変えればよいですか?? Xみたいに線を描きたいです。 class Ten def initialize(x, y) @x = x # インスタンス(@がついているもの)変数に代 入 @y = y # インスタンス(@がついているもの)変数に代入 end attr_accessor :x, :y end class Sen def initialize(p1, p2) @p1 = p1 @p2 = p2 @a = (p2.y - p1.y)/(p2.x - p1.x) @b = -@a * p1.x p1.y end attr_accessor :p1 # 始点 attr_accessor :p2 # 終点 attr_accessor :a # 傾き attr_accessor :b # Y軸との交点 end def koten(l1, l2) x = (l1.b - l2.b)/(l2.a - l1.a) y = (l1.a * l2.b - l1.b * l2.a)/(l1.a - l2.a) puts x, y end p1 = Ten.new(0.0, 0.0) p2 = Ten.new(6.0, 4.0) p3 = Ten.new(0.0, 4.0) p4 = Ten.new(6.0, 0.0) l1 = Sen.new(p1, p2) l2 = Sen.new(p3, p4) koten(l1, l2)

  • 【ruby】特異クラスを使って,File.statをカスタムしたい

    File.statに、nameというメソッドを追加したいです。 st=File.stat('hoge.txt') puts st.name #=> hoge.txt 上記のように使いたいのです。 そこで、以下の様に書いてみました。(行頭のスペースは全角です) class File  class << self   def stat(file)    st=File::Stat.new(file)    class << st     def name      @file     end    end    st   end end end st=File.stat('./hoge.txt') puts st.name #=> nil 上記実行結果はnilが出力され、期待した結果は得られませんでした。 上記の様に書いた理由を以下に記します。 クラスメソッドstatは、file.rbのclass Fileの中に定義されていて、 stat.rbのFile::Stat.new(file)を戻り値としていました。 stat.rbのclass File::Statのinitializeでは、 def initialize(file)  @file = file  (略) end となっていたので、上記の様に書いてみたのですが、何が悪いのでしょうか? ご指導のほど、宜しくお願いいたします。

    • ベストアンサー
    • Ruby
  • Ruby について質問です

    Rubyについて質問です class Document include Enumerable attr_accessor :title, :author, :content def initialize(title, author, content) @title = title @author = author @content = content end def words @content.split end def each words.each { |word| yield(word) } end end doc = Document.new('Advice', 'Harry', 'Go ahead make my day') doc.each { |word| puts word } このようなコードがすでに出来上がったおり、 これをアルファベットの早い順に並び変えて(sort)出力させるには どのようにコードを追加すればよいですか? どうやら、sort メソッドと <=> 演算子を使って記述するようですが、 よくわかりません 回答お願いいたします。

  • Rubyのクラス

    class Test def initialize @ary = Array.new(size){false} end def print _print end def _print print"#{@ary}" end end test = Test.new(5) test.print 上記のプログラムはエラーが出て実行できません。期待している動作は[false,false,false,false,false]です。どうしてエラーが出るか教えていただきたいです。また、解決策もよろしくお願いします。

    • ベストアンサー
    • Ruby
  • Rubyのsuperclassメソッドについて

    Rubyについての質問です。処理系は1.8.7です。 class Foo def initialize(a) @a = a end end のようなクラスを作成し、そのインスタンスを foo = Foo.new(1) のように作成します。 このとき、 foo.superclassを呼び出すと NoMethodError: undefined method `ancestors' for #<Foo:0x2b691220cc88 @a=1> とエラーになります。 一方で class FooExt < Foo def initialize (a,b) @b = b super a end end のようにFooを継承したクラスを作り、 fooext = FooExt.new(1,2) fooext.superclass とすると => Foo とsuperclassメソッドが動作します。 このsuperclassメソッドはどこで追加されたものなのでしょうか?