def doSomething(value)
if (value.is_a?(Integer))
print value * 2
else
print "Error: Expected integer value"
exit
end
end
Ruby メソッドに、特定のパラメーターが整数でなければならないことを伝えることはできますか? そうしないとクラッシュしますか? Javaのように。
def doSomething(value)
if (value.is_a?(Integer))
print value * 2
else
print "Error: Expected integer value"
exit
end
end
Ruby メソッドに、特定のパラメーターが整数でなければならないことを伝えることはできますか? そうしないとクラッシュしますか? Javaのように。
いいえ、できません。すでに行っていることしかできません。自分でタイプを確認してください。
私はパーティーに遅れましたが、何か他のものを追加したかったのです:
Ruby で本当に重要な概念はDuck Typingです。この原則の背後にある考え方は、変数を使ってやりたいことを実行できる限り、変数の型はあまり気にしないということです。メソッドで必要なのは、(*) に応答する変数を受け入れることです。インスタンスが乗算できる限り、クラス名は気にしません。
#responds_to?
そのため、Ruby ではメソッドよりもメソッドをよく見かけます。#is_a?
一般に、ユーザー入力などの外部ソースから値を受け入れる場合にのみ型アサーションを行います。
必要に応じて、いつでも任意に例外を発生させることができます。
def doSomething(value)
if (value.is_a?(Integer))
print value * 2
else
raise "Expected integer value"
end
end
本当にやりたいかどうかは別問題です。:)