の違いこれらの二つの構文の違いは何ですか:レール:ENV.fetch()およびENV []
ENV.fetch("MY_VAR")
ENV['MY_VAR']
が、私はRailsの5の使用にこれらの両方のバージョンを見てきました違いが何であるかを知ることはできません(最初の文字は入力する文字数が異なります)。
の違いこれらの二つの構文の違いは何ですか:レール:ENV.fetch()およびENV []
ENV.fetch("MY_VAR")
ENV['MY_VAR']
が、私はRailsの5の使用にこれらの両方のバージョンを見てきました違いが何であるかを知ることはできません(最初の文字は入力する文字数が異なります)。
ハッシュのようなオブジェクトはRubyであり、Railsの一部ではありません。 fine ENV#[]
manualから:
文字列などの環境変数
name
の値を取得します。指定された変数が存在しない場合はnil
を返します。
は、環境変数
name
を取得します。与えられた名前が存在せず、
default
もブロックaも指定されていない場合、IndexErrorが発生します。ブロックが与えられている場合は、値を提供するために欠落した名前で呼び出されます。デフォルト値が与えられている場合は、ブロックが与えられていないときに返されます。
だからHash#[]
とHash#fetch
のように、唯一の違いは、fetch
あなたは鍵が見つからない場合(動作を指定fetch
に渡さfetch
に渡されたデフォルト値、デフォルトのブロックを使用するか、例外を発生することを可能にするということです)、[]
は、キーが見つからない場合、ただ暗黙のうちにnil
を与えます。特定の場合には
:
ENV.fetch("MY_VAR")
ENV['MY_VAR']
違いは何MY_VAR
環境変数が存在しない場合ENV['MY_VAR']
はあなたにnil
を与えるだろうが、ENV.fetch('MY_VAR')
は例外を発生させるということです。
この答えは 'ENV :: fetch'と' ENV :: [] 'の*セマンティクス*について説明していますが、質問は明示的に*構文*について質問します。 –
あなたの質問は不明です。あなたは明示的に*構文*について尋ねるが、構文を全く説明しない答えを受け入れ、*セマンティクスについてのみ話す*。 –
@JörgWMittag質問をしたときに誰もが辞書に相談するわけではありません。あなたは英語のコマンドを表示する必要がある場合は、あなた自身の答えを提供することを歓迎します。 –