1

出力をhtmlファイルに記録する方法を定義するモジュールがあります。モジュールは次のようになります。

module Htmllog
  @htmllogfile = "htmllog/myproject" + Time.now.strftime('%Y%m%d-%H%M%S') + '.html'

  def self.add(text, tag)
    if tag.length == 0
      formattedlog = text
    else
      formattedlog = "<#{tag}>#{text}</#{tag}>"
      puts text
    end 
    File.open(@htmllogfile, "a") do |f| 
      f.puts formattedlog
    end 
  end 
end

main.rb ファイルで呼び出しますが、次のように呼び出すと問題なく動作します。

Htmllog.add "Hello world!", "h1"

多くのものをログに記録する必要があるため、桁数を減らすためのショートカットを追加したいと思い、これを試しました:

l = Htmllog.add
l "Hello world!", "h1"

しかし、私はこのエラーが発生します。

`add': wrong number of arguments (0 for 2) (ArgumentError)

何が悪いのかわかりません。

4

3 に答える 3

4

Object#methodと を使用して以下のようにしますMethod#call

l = Htmllog.method(:add)
l.call("Hello world!", "h1")
l.("Hello world!", "h1") # which is same l.call("Hello world!", "h1")

l = Htmllog.addのメソッド定義によると、 は有効ではありませんadd。したがって、エラーが発生しました。

于 2013-11-04T17:23:49.127 に答える