rubyメソッドの引数としてグローバル変数を使用する

drewM

UdemyでRubyコースを受講していますが、このコードが機能する理由を理解しようとしています。それは任意の2つの数を取り、それらを乗算します。

def multiply(first_num, second_num)
  first_num.to_f * second_num.to_f
end

puts "Enter the first number"
first_number = gets.chomp
puts "Enter the second number"
second_number = gets.chomp

puts "The first number multiplied by the second number is #{multiply(first_number, second_number)}"

このメソッドは2つの引数を設定し、それらを使用します。次に、2つの数値が格納されます。1つはfirst_numberに、もう1つはsecond_numberに格納されます。最終的な印刷では、代わりに使用するfirst_numsecond_num、FIRST_NUMBERおよびsecond_number代わりFIRST_NUMとsecond_numのに使用されます。メソッド内で初期引数を使用していないため、コードが失敗することが予想されます。なぜそれが機能するのですか?

編集:私の元の質問はグローバル変数について言及していましたが、質問を混乱させた他の言及とともに、それらの参照を削除するように編集しました。また、質問に答えました。私が本当に尋ねようとしていたのは、「なぜ2つの変数がメソッド内に含まれておらず、メソッドの引数として使用されたのか」ということでした。私はそれがどのように機能するのか気づいていませんでした。@sawaに感謝します。私をまっすぐにし、Rubyについてまだ学んでいないことを教えてくれました。

はい

プログラムがどのように読み取られ、実行されるかを誤解しているようです。特に、メソッドが呼び出されるタイミングについて間違った考えを持っているようです。

スクリプトが実行されると、スクリプトの上部で、その時点でメソッドmultiply定義され、実行されません(メソッドの実行は、特定の引数で呼び出された場合にのみ実行されます)。

次にローカル変数、グローバルでないものは、first_numberおよびsecond_numberコンソールからの入力に応じて設定されています。

次に、の引数内で、引数。を使用してputsメソッドmultiply呼び出されますfirst_numbersecond_number

メソッド内の実行の定義ではない、multiply所定の、first_numberおよびsecond_numberに割り当てられているfirst_numsecond_numだけメソッドの実行内でアクセスすることができ、それぞれ。

計算された値はメソッドから返され、の引数の一部にmultiply入れられ#{}ますputsそこで、メソッドto_sは値に適用され、出力されるものの一部になります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

可変数の引数を使用して、Rubyがプログラムでメソッドを呼び出す

分類Dev

OOPのメソッドを使用してグローバル変数の値を出力する方法は?

分類Dev

関数/メソッドの引数として動的変数名を使用する

分類Dev

tkinterのメソッドを介してグローバル変数を変更する

分類Dev

Ruby-メソッド内からグローバル変数を作成する

分類Dev

forEachメソッドとコールバックを唯一の引数として使用して、配列内のすべての名前をコンソールログに記録するにはどうすればよいですか?

分類Dev

小枝グローバル変数としてのサービスメソッド

分類Dev

関数の引数としてphp5グローバル変数を使用する方法は?

分類Dev

配列を使用して可変引数rubyメソッドに複数の引数を渡す

分類Dev

メソッドでグローバル変数をローカル変数に変換するJavaの利点

分類Dev

Pythonで複数の引数を必要とするメソッドを使用したマルチプロセッシングプール

分類Dev

c#を使用して非同期メソッドからグローバル変数を割り当てます

分類Dev

引数として使用される変数の値を変更する静的メソッド

分類Dev

Flutterのグローバル変数として変数を使用する

分類Dev

可変個引数データ構造に格納されているフィールドをメソッド引数として使用する

分類Dev

ローカル変数をパラメータとして使用するモック内部メソッド

分類Dev

RubyのTracePointを使用してメソッド引数を取得する

分類Dev

可変引数オーバーロードされたメソッド(オブジェクト... O)と非可変引数メソッド(オブジェクトo)に引数としてnullを渡すときに、なぜメソッドが実行される可変引数?

分類Dev

ローカル変数のスレッドセーフを使用したグローバルメソッド

分類Dev

サブクラスにグローバル変数を割り当て、onCreateメソッドで使用します-Android

分類Dev

連鎖関係のプレースホルダーとしてメソッド引数を使用する

分類Dev

グローバル変数を使用するメソッドのインポート

分類Dev

NodeJSメソッドの引数としてクラス関数を使用する

分類Dev

メソッド定義内で$ 1、$ 2などのグローバル変数を使用する

分類Dev

メソッドの戻り値を引数として使用するのに対し、あるメソッドでクラス変数を設定し、それを別のメソッドの引数として使用する

分類Dev

別のメソッドを介してメソッドのローカル変数を取得する

分類Dev

$&グローバル変数を使用するプログラムによるエイリアスメソッド

分類Dev

メソッド名を引数として使用する方法

分類Dev

型引数を使用して静的メソッド参照として変数をボックス化する方法は?

Related 関連記事

  1. 1

    可変数の引数を使用して、Rubyがプログラムでメソッドを呼び出す

  2. 2

    OOPのメソッドを使用してグローバル変数の値を出力する方法は?

  3. 3

    関数/メソッドの引数として動的変数名を使用する

  4. 4

    tkinterのメソッドを介してグローバル変数を変更する

  5. 5

    Ruby-メソッド内からグローバル変数を作成する

  6. 6

    forEachメソッドとコールバックを唯一の引数として使用して、配列内のすべての名前をコンソールログに記録するにはどうすればよいですか?

  7. 7

    小枝グローバル変数としてのサービスメソッド

  8. 8

    関数の引数としてphp5グローバル変数を使用する方法は?

  9. 9

    配列を使用して可変引数rubyメソッドに複数の引数を渡す

  10. 10

    メソッドでグローバル変数をローカル変数に変換するJavaの利点

  11. 11

    Pythonで複数の引数を必要とするメソッドを使用したマルチプロセッシングプール

  12. 12

    c#を使用して非同期メソッドからグローバル変数を割り当てます

  13. 13

    引数として使用される変数の値を変更する静的メソッド

  14. 14

    Flutterのグローバル変数として変数を使用する

  15. 15

    可変個引数データ構造に格納されているフィールドをメソッド引数として使用する

  16. 16

    ローカル変数をパラメータとして使用するモック内部メソッド

  17. 17

    RubyのTracePointを使用してメソッド引数を取得する

  18. 18

    可変引数オーバーロードされたメソッド(オブジェクト... O)と非可変引数メソッド(オブジェクトo)に引数としてnullを渡すときに、なぜメソッドが実行される可変引数?

  19. 19

    ローカル変数のスレッドセーフを使用したグローバルメソッド

  20. 20

    サブクラスにグローバル変数を割り当て、onCreateメソッドで使用します-Android

  21. 21

    連鎖関係のプレースホルダーとしてメソッド引数を使用する

  22. 22

    グローバル変数を使用するメソッドのインポート

  23. 23

    NodeJSメソッドの引数としてクラス関数を使用する

  24. 24

    メソッド定義内で$ 1、$ 2などのグローバル変数を使用する

  25. 25

    メソッドの戻り値を引数として使用するのに対し、あるメソッドでクラス変数を設定し、それを別のメソッドの引数として使用する

  26. 26

    別のメソッドを介してメソッドのローカル変数を取得する

  27. 27

    $&グローバル変数を使用するプログラムによるエイリアスメソッド

  28. 28

    メソッド名を引数として使用する方法

  29. 29

    型引数を使用して静的メソッド参照として変数をボックス化する方法は?

ホットタグ

アーカイブ