3

次のようなメソッドがあるとしましょう...

def is_number?(a,b,c,d)
  # ... check if the argument is a number
end

渡された各引数を繰り返し処理しis_number?、メソッド内で何をすることは可能ですか?

例えば...

is_number?(1,3,"hello",5)

各引数を通過し、引数の各引数が数値の場合は true を返しますが、この場合は"hello".

入力が数値かどうかを確認する方法は既に知っています。多数の引数をすべて 1 つのメソッドで確認できるようにしたいだけです。

4

2 に答える 2

4

コードゴルフのさわの答え:同じ長さですが、避けます|

def is_number?(*args)
  (args - args.grep(Fixnum)).empty?
end

is_number?(1,2,3) # => true
is_number?(5,2,"foo") # => false

grep -v があればいいのですが、現在はありません

于 2012-04-12T04:49:56.133 に答える
3
def is_number? *args; args.all?{|a| a.kind_of?(Fixnum)} end

Fixnum別のクラスを一致させたい場合は置き換えます。

于 2012-04-12T03:04:05.333 に答える