自分で作った.rbをどうやってrequireすれば良いか @ stackoverflow
require_relativeってのがあったんだ...。いちいちファイルパス生成してた...。
2012/07/28
2012/05/12
可変長引数リストと配列
- プログラミング言語 Rubyより
任意の個数の引数を受け付けられるメソッドを書きたい場合がある。そのようなときには、メソッド引数の中のどれか1つの前に*を入れる。メソッド本体では、この引数はその位置に渡された0個異常の引数を含む配列を参照する。このような引数をrest引数と呼ぶ。
- プログラミング言語 Ruby 第2版 6.4.2 可変長引数リストと配列 192ページ
# 渡された1個異常の引数のうち最大のものを返す def max(first, *rest) max = first rest.each {|x| max = x if x > max} max end
メソッド宣言で*を使えば、複数の引数を集めて1つの配列が作られる。*は、メソッド呼び出しの中で配列(または範囲、Enumerator)の要素をばらまいたり、展開したり、取り除いたりするためにも使える。*は、本物の演算子ではないが、splat演算子と呼ばれることがある。
たとえば、配列の中の最大値を見つけたいものとする。maxメソッドには、次のようにして配列要素を渡すことができる。
data = [3, 2, 1] m = max(*data) # first = 3, rest=[2,1] => 3では、*がなければどうなっていただろうか。
m = max(*data) # first = [3,2,1], rest=[] => [3,2,1]以上プログラミング言語 Rubyより。
rest引数にsplat演算子か。メモメモ。記憶力悪いんで、ぐぐりたいときに単語が出てこないんですよね...。
2012/05/03
2012/03/20
technical terms
technical termsって辞書にあんまり乗ってなくて、英語で文章を書くときに困るんですよね。見かけるたびにメモしていくことにしようっと。
英語 | 日本語 |
---|---|
singleton method | 特異メソッド |
predicates | 述語 |
2012/02/17
2012/02/11
loggerの出力フォーマット
- Rubyについて Part46より
505 :デフォルトの名無しさん:2012/02/06(月) 17:18:12.21 Rubyというか、loggerについて質問です。 log.warn("Nothing to do!") # W, [2005-02-10T20:03:56.489954 #12469] WARN -- : Nothing to do! 「--」の意味がわからないのですが、何のために出力されるのでしょうか?
506 :デフォルトの名無しさん:2012/02/06(月) 17:27:52.61 irb> require 'logger' irb> log = Logger.new($stdout) irb> log.warn('my_program'){'WARNING!!'} W, [2012-02-06T17:24:16.031628 #5320] WARN -- my_program: WARNING!! というわけで、そのコロンの前には実はプログラム名が省略されていて、それとログレベル表示を区別するためのハイフンなのだ ほとんど使われない機能ではあるのだけど
- Rubyについて Part46
登録:
投稿 (Atom)