概要
配列引数
内容
配列引数は任意の数の引数を配列として受け取ることができます。
この機能は、可変長・位置可変等様々な条件の引数をとるような
DSLの実装に役立ちます。
サンプル仕様
Ruby,Java,JavaScriptに対応した文字列出力機能。
構文はmulti_lang_printに任意の数の引数を渡すこと。
引数がシンボルなら言語指定。
文字列なら出力内容指定とする。
デフォルトはRubyで出力する。
サンプルコード
# encoding: utf-8 require "pp" def multi_lang_print(*commands) lang = :ruby output = "" commands.each do |c| if c.class == Symbol lang = c else case lang when :ruby output << "puts \"#{c}\"" when :java output << "System.out.println(\"#{c}\");" when :js output << "console.log(\"#{c}\");" end output << "\n" end end return output end puts multi_lang_print "default-hoge", :java, "java-hage", "java-hige", "java-hoge", :js, "js-hoge", :ruby, "ruby-hoge"
出力
puts "default-hoge" System.out.println("java-hage"); System.out.println("java-hige"); System.out.println("java-hoge"); console.log("js-hoge"); puts "ruby-hoge"