はじめに
こんにちは、progateでRubyを勉強したのち「ゼロからわかるRuby超入門」を勉強しています。
Rubyを勉強していて当たり前に変数とか引数という言葉が出てくると思うのですが、どう違うの。と言われたら明確に説明できますか?
中高の数学で変数があり、同じ意味でとらえてはいけないよということを本記事で紹介していきたいと思います
環境:ruby 3.3.5
変数とは
中高生数学でやった変数とは全く別物ということをまず前提で聞いてください。特に独学で勉強している方は、反射的に変数と聞けばx
やy
を想像してしまうのではないでしょうか。
知っている単語は無意識的に知っている知識で補おうとするので、勘違いしていることに気づかなくなってしまいます。そういったバイアスがあることを認識してさっそく変数はじめに
こんにちは、progateでRubyを勉強したのち「ゼロからわかるRuby超入門」を勉強しています。
Rubyを勉強していて当たり前に変数とか引数という言葉が出てくると思うのですが、どう違うの。と言われたら明確に説明できますか?
中高の数学で変数があり、同じ意味でとらえてはいけないよということを本記事で紹介していきたいと思います
環境:ruby 3.3.5
変数とは
中高生数学でやった変数とは全く別物ということをまず前提で聞いてください。特に独学で勉強している方は、反射的に変数と聞けばx
やy
を想像してしまうのではないでしょうか。
知っている単語は無意識的に知っている知識で補おうとするので、勘違いしていることに気づかなくなってしまいます。
そういったバイアスがあることを認識してさっそく変数についてみていきましょう。
変数とは、様々例えがありますが最初は概要を理解しやすいように、データや値を一時的に保存するための「名前付きの箱」と覚えておきましょう。
※含みを持たせた言い方をした理由は後々説明します。
プログラム内で、値を保持したり、その値を後で参照したり変更したりするために使用します。
値が変更するというところで、変数という名前がついていることがわかりますね。
x = 10
y = 20
z = x + y
puts z # => 30
x
と y
は変数です。x
には 10、y
には 20 という値がそれぞれ代入されています。
変数 z
に、x + y
の計算結果である 30 を代入しています。
改めて言いますが、数学の変数と違いますよ!w
ここまでで、初めて学んだ方にはある程度変数の概要を理解していただけたと思います。
しかし、変数を箱だけで理解しようとすると後々苦労するので概要を理解できた方は以下の記事から変数の考え方について学びましょう。
じゃあなんで箱っていったんだよ、と思われるかもしれませんがとっかかりとして説明しました。
変数ってなんだろって方にはまずは全体概要をつかんでもらって、けど変数は箱であるという理解だと限界があるので概要をつかめた方は
変数は名札であると理解しておきましょう。
引数
続いて、引数について説明していきたいと思います。
ややこしいことを言うかもしれませんが、引数は数学の変数と似ています。
そして、さらに引数にも実引数と仮引数があります
仮引数は、下記記載コードのadd(a, b)
のa
とb
を指します。
仮引数は関数定義時に設定され、のちに説明する実引数から渡されたデータを仮引数で受け取ります。
一方で、実引数は add(10, 20)
の 10
と20
に該当します
実引数をdef add
のa
とb
に引き渡してdef add
が実行される仕組みとなっています。
def add(a, b)
a + b
end
result = add(10, 20)
puts result # => 30
数学の変数と似てますよね。rubyに限らずですがプログラミングの変数と数学の変数は別物で、引数が数学の変数と似ていると思ってもらえれば大丈夫だと思います。
まとめ
本日は変数と引数について説明しました。知識不足のためコメントにて助力をいただき記事の内容を一部修正しました。
変数についていろいろコロコロ意見変わってるなと思うかもしれませんが、私もコメントをいただいて理解を改めた次第です。
しかし、変数は箱であるという記述を残したのはこの記事を見て変数の簡単な概要を理解してほしい(箱のほうが理解はしやすいと思いました)という思いがあるからです。
特に独学だと余計に誰にも頼れないと思うので微力ながらお力になれば幸いです。
変数が箱であるという考えのみでは限界があるので、上記を見て変数についてある程度わかったら上記の記事にて「Ruby の変数は箱じゃない」を確認してください。