2017-09-18 3 views

答えて

0

Rubyは動的な言語であり、それは我々がメソッドの変数または引数のデータ型を宣言することはありませんダックタイピングをサポートしています。どのような方法でも配列を渡すことができるので、ルビはその引数で使用できるメソッドを気にします。

def doSomething(value) 
    if (value.is_a?(Array)) 
    value.any_array_method # For eg: value.include?('a') 
    else 
    raise "Expected array value" 
    end 
end 

そして、あなたは同じようにそれを呼び出すことができます:

doSomething(['a', 'b', 'c']) 

、あなたがいずれかでそれを呼び出すのであれば、使用している配列方法について確認するためにのみ、あなたはこのように行うことができ、アレイ上で実行されます配列以外の引数を指定すると、次のようになります。

あなたに依存する例外を発生させる代わりに、エラーメッセージも渡すことができます。

これが役に立ちます。

1

これを試してみてください。

#here argument name can be anything. It not compulsory to use array as argument name, it can be anything like `string`, `xyz` etc 

def function(array) 
    p array 
end 

function([1,2,3,4,5]) 
0

あなたは

def my_function(arr=[], s) 
    puts arr.inspect 
    puts s.inspect 
end 

をすることによってそれを行うことができます。これは、実際にRailsのよりルビーについての質問です

my_function([1,3,4], "string") 
1

でメソッドを呼び出すことができます。大事なことは、xがyを受け入れる方法+を持ち、かつx + yからの結果がメソッドを持っていることである

def add_three (x, y , z) 
    x + y + z 
end 

add_three(1, 2, 3) # 6 
add_three('a', 'b', 'c') # 'abc' 
add_three([2], [3], [4], # [2, 3, 4] 
add_three(Date.new(2017,3,4), 1, 1), # new date 2017.3.6 

:Rubyはメソッド定義では、あなたが引数の型を宣言していないことを意味し、動的型付け言語であり、 +は、zを受け入れます。これはダックタイピングと呼ばれています。ここで重要なのは、オブジェクトがどのクラスではなく、どのメッセージに応答できるかです。

関連する問題