def my_method(parameter)
if <what should be here?>
puts "parameter is a string"
elsif <and here?>
puts "parameter is a symbol"
end
end
24
A
答えて
45
最も単純な形式は次のようになります。
def my_method(parameter)
puts "parameter is a #{parameter.class}"
end
しかし、あなたが実際にタイプに基づいて何らかの処理を行いたい場合は、この操作を行います。
def my_method(parameter)
puts "parameter is a #{parameter.class}"
case parameter
when Symbol
# process Symbol logic
when String
# process String logic
else
# some other class logic
end
end
20
def my_method(parameter)
if parameter.is_a? String
puts "parameter is a string"
elsif parameter.is_a? Symbol
puts "parameter is a symbol"
end
end
私はこれが役に立てば幸いあなたの問題
11
if parameter.is_a? String
puts "string"
elsif parameter.is_a? Symbol
puts "symbol"
end
を解決する必要があります。
+0
残念ながら私のコードはエレガントではありません:) –
1
def my_method(parameter)
if parameter.is_a? String
puts "parameter is a string"
elsif parameter.is_a? Symbol
puts "parameter is a symbol"
end
end
-1
if parameter.respond_to? id2name
p "Symbol"
else
p "not a symbol"
をこれはまた、動作しますエレガントなソリューションではありません。
関連する問題
- 1. p:calendarの値が空の場合、JSをチェックインする方法は?
- 2. 変数がJSONオブジェクトの場合、node.jsをチェックインする方法は?
- 3. ダイナミックディスパッチ(メソッドがモジュールの一部である場合)のメソッドをRubyで呼び出す方法は?
- 4. 特定のディレクトリにマウントがある場合、golangをチェックインする方法--bind?
- 5. ユーザアカウントがアクティブな場合にC#をチェックインする方法
- 6. 投稿がある場合はDeleteViewをチェックインしますか? django
- 7. perforceでそのディレクトリ内にチェックインがある場合、特定のディレクトリのbuild.xmlファイルをトリガする方法は?
- 8. アーキテクチャが32または64ビットの場合、Rustをチェックインする方法は?
- 9. デフォルトワークフローがplone_workflowまたはintranet_workflowの場合、作業コピーをチェックインする方法は?
- 10. PHP:パラメータがある場合とない場合があるメソッドを使用する
- 11. テキストフィールドが必須フィールドの場合、CODED UIをチェックインする方法は?
- 12. ファイルパーミッションが755より大きい場合、Perlをチェックインする方法は?
- 13. 正規表現が有効な場合、Swiftをチェックインする方法は?
- 14. 写真を受信している場合にJSPをチェックインする方法は?
- 15. Rubyではメソッドが定義されている場所を知る方法がありますか?
- 16. メソッドパラメータがインタフェースである場合のJMHの統合方法は?
- 17. 基本クラスでより一般的なメソッドがある場合、基本クラスのメソッドをオーバーライドする方法は?
- 18. 次の場合にrubyメソッドを呼び出す方法:onchangeイベントがトリガされる(ruby on rails 4)?
- 19. jsonファイルに特定のデータが既にある場合、NodeJSをチェックインする方法
- 20. シンボル計算が含まれているセルがある場合
- 21. ODataRoutePrefixAttributeを使用してC#ODATAコントローラを作成する場合、メソッドのパラメータではなくクラスのプロパティにパラメータをバインドする方法はありますか?
- 22. methodnameが関数パラメータの場合にメソッドを呼び出す方法
- 23. バインディングソースを使用する場合のパラメータ値のトリミング方法は?
- 24. dbのエントリが削除された場合のPHPのチェックイン方法は?
- 25. メソッドが静的メソッドである場合のPHPUnitテスト
- 26. 検証が失敗した場合、検証段階の後のチェックイン方法は?
- 27. ユーザーがアプリケーションからチェックインする方法はありますか?
- 28. Javascriptが私は次のコードがある場合はパラメータ
- 29. ES6:クラスにメソッドがある場合?
- 30. Python rabbitmqのチェックイン方法メッセージが最後の5秒で届かない場合
それは 'case parameter.class'ですか? –
@Beerlington私はちょうどテストし、パラメータだけを使ってうまく動作します。 –
@Beerlington:いいえ: 'case x;いつy ....。 Rubyは 'when =' x'を実行して 'when'ブロックに入るべきかどうかを判断します。 '==='は単に何か「有用」を行うように定義されています。たとえば、クラスの場合は 'instance_of? 'です。範囲については、それは 'include? 'などです。 –