先日、12 月 12 日ももくもく会を開催しました。
今回もたくさんの方にお越しいただきましたが、特に初参加の方が多い印象でした。遅い時間でしたがお越しくださったみなさま、本当にありがとうございました。
さて、今回は Ruby のあれこれに関しての質問があったので、復習がてらこちらでも一部紹介したいと思います。
とっつきにくい Ruby のシンボルについて
プログラミング初学者の方、Ruby を学習し始めた方がよく「?」となってしまうポイント、それが文字列とシンボルの違いです。いまいちしっくりこないという方がたくさんいらっしゃるのではないでしょうか?
今回は文字列との違いを簡単に紹介しますね。
では早速。ちょっとした例をあげます。
my_class = 'sakura'
上記では my_class は文字列で定義されています。
his_class = 'sakura'
そこに追加で上記のように別の変数を追加します。
すると変数に格納されている値は my_class も his_class も同じですが、別のインスタンスで(別のメモリを使って)文字列が生成されます。文字列を作るときにメモリを消費してしまうんですね。
これに対して、シンボルはコード上に唯一存在するもの、かつ文字列と一対一に対応した記号を指します。
わかりにくいですね。文字列とどう違うかというと、
my_class = :sakura
his_class = :sakura
上記 my_class と his_class はもちろん同じ値なのですが、文字列と違ってインスタンスも同じなのです。
my_class も his_class もまったく同じメモリを使いまわしている状態なので、オブジェクトとしてまったく同じものを指しています。つまり、メモリを節約するエコなやつなのです。
これが、文字列とシンボルの一番の違いです。そして「変更ができない文字列っぽいもの」なので、他の言語では文字列で書かれるようなところによく登場します。意味合いとしては何か文字列を渡しているようなイメージでも大丈夫です。
※ インスタンスなにそれ?オブジェクトなにそれ?な方は一度調べてみてください。この辺りも当日は質問が出たので解説をさせていただきました。なかなか難しいところではあるのですが一定の理解をいただけた様子です。
まだまだとっつきにくい方もいらっしゃるかもしれません。(だいぶとっつきにくいと思います)
もっと話を聞きたい方、もっと詳しい解説が欲しい方は是非もくもく会に足を運んでくださいね!
そして、今回こういった質問をくださった方もそうでしたが、外部の講習や講座を受けてわからなかったことを弊社のもくもく会で解消していかれる方もいらっしゃいます。関係ない講義での話なので、聞きにくいなぁなんて思われる方もいらっしゃるかもしれませんが、遠慮なく質問してみてください!大歓迎です!
興味のある方は下記から参加表明をお願いします!
↓ 次回の【初心者歓迎】プログラミング相談所【もくもく作業でも OK】は 12 月 26 日(土)の 14:05 ~ 16:50 に開かれます。*次回もいつもの渋谷( https://circlearound.co.jp/guide )開催です。
https://circlearound.doorkeeper.jp/events/34541
— 以下お知らせになります —
サークルアラウンドでは WEB プログラミング個別トレーニングを実施しています。こちらは短期間で集中して、プログラミングを学びたい方に適したサービスとなっております。もくもく会では下記サイトページの WEB プログラミング個別トレーニングについてのご質問も引き続き歓迎しております。
https://circlearound.co.jp/training/
次回以降のもくもく会は以下の予定となっています。
2016-01-09(土)14:05 - 16:50
https://circlearound.doorkeeper.jp/events/34542
2016-01-23(土)17:05 - 19:50
https://circlearound.doorkeeper.jp/events/35285
2016-01-30(土)14:05 - 16:50
https://circlearound.doorkeeper.jp/events/35751
みなさま気軽にご参加くださいね。
よろしくお願いします!