shirotamaki
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # 【第6週】🍒チェリー本輪読会 (2021\-06\-28\~ 2021\-07\-02) ###### tags: `チェリー本🍒` [チェリー本 輪読会ノートまとめ \- HackMD](https://hackmd.io/vDXm6tpgTdeHKByO1HK5_Q) ## 目次 [TOC] ## 2021\-06\-28 ### 参加者 - @eatplaynap - @hosso - @shirotamaki - @yana-gi - @isshi-hasegawa - @yatsuhashi ### 司会 - @eatplaynap ```ruby %w[eatplaynap isshi-hasegawa hosso yana-gi shirotamaki yatsuhashi obregonia1].sample ``` ### ドライバー - @hosso ```ruby %w[isshi-hasegawa hosso yana-gi shirotamaki yatsuhashi obregonia1].sample ``` [タイマー](https://timer.onl.jp/) ### スタート地点 - 第4章 4.9.5から ### 疑問点・気づき #### 第4章 4.9.6まで - @eatplaynap - `for`は`each`で全く同じものとして書き換えできるようで若干違う。 - `each`に慣れているため、どちらかというと、`for`の中で作成された変数を外で参照できるほうが違和感を感じるが、他の`for`を使う言語だと違和感なかったりするのかな。 - `in`って何? - あえて無限ループを作りたいときはどういうときなんだろう? - 例えば rails の起動後とかは止めるまで無限にループしていてほしいはず(:smile_cat: 森塚さん) - @yatsuhashi - `for`,`while`,`until`は外から変数が参照できる - `each`,`loop`は外から参照できない - @hosso - `for`、 `while`、`until`は変数が外から参照できるので注意! - `loop`は`break`で条件を書いて抜け出せる。 - @isshi-hasegawa - irbのバージョンアップで解決できたことに驚いた - 事情あってあまり集中できなかったのであとでしっかり復習します - @yana-gi - eachのブロック内で定義した変数はブロック外で使えないのに対して、for文の中で定義した変数は使える。 - るりまにも書いてあった。 - >「ほぼ」というのは、do ... endまたは{ }によるブロックは新しいローカル変数の有効範囲を導入するのに対し、 for文はローカル変数のスコープに影響を及ぼさない点が異なるからです。 https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html#for - @shirotamaki - loopメソッド、eachメソッドは、ブロック変数`n`が外から参照できない。while文、for文、until文は可。 - loopメソッドは、`break`で脱出できる。 - for文が、確かほぼ使わない文だった気がするが何故? - each文やwhile文等で代用できるから。for文は読みにくい。 - `irb`がおかしいとき、`gem update irb` を実行してみる。 ### 振り返り(よかった点・次回に向けての改善点等) - @eatplaynap - obregoniaさんまだ歯痛に苦しんでるんだろうか? - for文使わないなら知らなくてもいいか〜と思ってたけど、人のコードを読むときに挙動を知っていたほうがいいと思うので知れてよかった - @isshi-hasegawa - スマホでも輪読会に参加できることがwakatta - しばらくこのスタイルで参加します - @yana-gi - each文とfor文の変数のスコープの違いは初めて知った。 - 毎日のようにディスコードの接続不良が起きていて申し訳ない😭アプリアップデートしてみよう - @yatsuhashi - irbバージョンの発想はなかった - @hosso - 今日はタイポ多めでした…! - 予期しない挙動の時はバージョン違いや古い可能性があるので、 バージョンを確認したり、アップデートを実行してみるのは大切。 - irb内で`irb_info`を実行するとRubyやirbの情報が見れる! ```ruby= irb(main):001:0> irb_info => Ruby version: 3.0.0 IRB version: irb 1.3.6 (2021-06-19) InputMethod: ReidlineInputMethod with Reline 0.2.6 RUBY_PLATFORM: x86_64-darwin19 ``` - @shirotamaki - 普段使わないというか、ほぼ使ったことがないfor文。改めて、使わないな〜と思った... - irbのバージョンを確認する方法 - `gem list` - 他の調べる方法 ```rb shiro@shiro:~$ irb irb(main):001:0> irb_info => Ruby version: 3.0.0 IRB version: irb 1.3.6 (2021-06-19) InputMethod: ReidlineInputMethod with Reline 0.2.6 RUBY_PLATFORM: x86_64-darwin19 ``` ## 2021\-06\-29 ### 参加者 - @eatplaynap - @shirotamaki - @hosso - @yana-gi - @isshi-hasegawa - @obregonia1 - @yatsuhashi ### 司会 - @shirotamaki ```ruby %w[eatplaynap isshi-hasegawa hosso yana-gi shirotamaki yatsuhashi obregonia1].sample ``` [タイマー](https://timer.onl.jp/) ### ドライバー - @yatsuhashi   ```ruby %w[isshi-hasegawa hosso yana-gi shirotamaki yatsuhashi obregonia1].sample ``` ### スタート地点 - 第4章 4.9コラムから ### 疑問点・気づき #### 第4章 4.10.1まで - @eatplaynap - `Numeric`クラスは`Compareble`モジュールをincludeしている - クラスの継承関係の理解がまだかなり曖昧なので、いつかもうちょっと理解できたらいいな〜 - 制御構造は自分で書いていると訳がわからなくなる。いつも思ったように動いてくれない。書くときの考え方のコツなどがあったら知りたい - @yana-gi - `break`と`return`の違いをちゃんと認識していなかった - `break`は`for`や`each`(イテレータ)などのループを脱出する - `retrun`はメソッドの実行を終了する - https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html#break - @isshi-hasegawa - uptoメソッドの戻り値が`Enumerator`クラスだとirbで確認できてよかった - @hosso - `Enumerator`クラスにまだ慣れていないので、 ```rb= irb(main):001:0> puts 1.upto(5) #<Enumerator:0x00007ffa6011ed30> => nil ``` - みたいな値が返ってくると「うっ」となる、慣れていきたい。 - `#<Enumerator:0x00007ffa6011ed30>`最初の2文字の`0x`は16進数の表記の印?でその後の`00007ffa6011ed30`は内部のデータを表す数字?(予想) - 繰り返し処理ができる情報が入っているオブジェクト?みたいな認識でいいのかな? - @yatsuhashi - Enumeratorクラス - >each 以外のメソッドにも Enumerable の機能を提供するためのラッパークラスです。 https://docs.ruby-lang.org/ja/latest/class/Enumerator.html - Enumerableモジュール - > 繰り返しを行なうクラスのための Mix-in。このモジュールのメソッドは全て each を用いて定義されているので、インクルードするクラスには each が定義されていなければなりません。 https://docs.ruby-lang.org/ja/latest/class/Enumerable.html - @obregonia1 - 入れ子になっている場合一番内側の繰り返しを脱出の意味がわかった - @shirotamaki - `Enumerator`クラスが`Enumerable`モジュールを`include`しているの意味が理解できた。 - `break`の使い方がわかった。 - `nunmbers`(139頁)誤植を発見した! コントリビュートチャンス!w ### 振り返り(よかった点・次回に向けての改善点等) - @eatplaynap - タマキさんが誤表記見つけてうらやましい - 入れ子の繰り返し処理についてやつはしさんの説明でやっと理解できた!さすが応用情報技術者!! - @isshi-hasegawa - 入力が大変だ - @yana-gi - Hossoさんとyatsuhashiさんの説明はいつも分かりやすい!! - :contribute_chance:の絵文字を作ってDiscordに登録しました✌️ - ワイワイ - @yatsuhashi - 誤植見つけられる日が来るかなー - @shirotamaki - 苦手意識があった`Enumerable``Enumerator`。第8章で深堀りしていくときに、さらに理解を深めたい。 - 誤植記念日 - 🎉 - @obregonia1 - 久々輪読会参加したので勉強頑張ろう - 🌵 - 🌵 - 🌵 - 🦷 - 🦷 - @hosso - 目標:1人1コントリビュート! - `Enumerator`クラスを少し理解できた、yatsuhashiさんの言う通りクラスやモジュールの関係をもう少し理解できたらさらに分かりそう。 ## 2021\-06\-30 ### 参加者 - @eatplaynap - @isshi-hasegawa - @hosso - @yatsuhashi - @obregonia1 ### 司会 ```ruby %w[eatplaynap isshi-hasegawa hosso yana-gi shirotamaki yatsuhashi obregonia1].sample ``` [タイマー](https://timer.onl.jp/) ### ドライバー ```ruby %w[isshi-hasegawa hosso yana-gi shirotamaki yatsuhashi obregonia1].sample ``` ### スタート地点 - 第4章 4.10.2から ### 疑問点・気づき #### 第4章 4.10.3まで - @eatplaynap - 繰り返し処理の制御には結局`break`を使うのが良さそう - 少なくとも`break`で書けるようになるのが第一目標かな - `catch`と`throw`のところで「タグ」という言葉が初めて出てきて何のことかと思ったけど、「同じ tag であるとは Object#object_id が同じ」というるりまの説明と、シンボルではなく変数を使って`catch`と`throw`を試したことでなんとなく理解できた - [Kernel\.\#catch \(Ruby 3\.0\.0 リファレンスマニュアル\)](https://docs.ruby-lang.org/ja/latest/method/Kernel/m/catch.html) - [Kernel\.\#throw \(Ruby 3\.0\.0 リファレンスマニュアル\)](https://docs.ruby-lang.org/ja/latest/method/Kernel/m/throw.html) - @shirotamaki - `catch`と`throw` のタグ(通常はシンボルを使う)を使った大域脱出が見慣れないためか、しっくりこない。 - `break`(繰り返し処理からの脱出)と`return`(メソッドからの脱出)の違いがあることがわかった。 - @isshi-hasegawa - throw は探索時に呼び出しスタックをさかのぼるので、ジャンプ先は同じメソッド内にあるとは限らない - もし ensure節 が存在するならジャンプ前に実行する - @hosso - `break`と`return`の違いは分かったが、 どちらもあまり使ったことがないから「理解できた!」感がそこまでないかも。 - `catch`と`throw`も同様。 - @obregonia1 - catchとthrowの挙動は難しい - @yana-gi - `break`と`return`の違い - `break` : 繰り返し処理からの脱出 - `retrun` : (繰り返し処理のみならず)メソッドからの脱出 - メソッドの外部からreturnを呼び出した場合はエラーになる - @yatsuhashi - タグが同じかどうかは`object_id`で判別されている ### 振り返り(よかった点・次回に向けての改善点等) - @shirotamaki - シンボルは自信がないので、今後出てくるシンボルの章でしっかり理解したい。 - `catch` `thorow`という単語のスペルの綴りがどうも苦手でよく間違える...汗 - `throw`だと思います笑 - あ〜たしかに!笑 - @yana-gi - 久しぶりに司会をした!初期の時より司会の負担が軽くなっていて輪読会が常によくなっていると感じる! - 違いの内容をしっかり理解できなくても、「違いがある」ということを知るだけでも後々役に立ちそう - @eatplaynap - 今日の範囲は難しかった〜!タマキさんドライバーお疲れさまです - `catch`と`throw`のことは正直よく分からなかったが、シンボルについて少し理解できたのでよかった - `return`については普段書かないので挙動がよくわからない。Rubyで動かすとき、書く必要がある場面と必要でない場面があるっぽい - @isshi-hasegawa - 具体的にどんな実装で大域脱出を使うのか気になる - https://github.com/search/advanced で探せば見つかるかも? - :kami: - すごい - @hosso - 配列でも後半の箇所は難しい!この後のハッシュとシンボルはいつもこんがらがってしまうのでしっかりやっていきたい。 - ハッシュを書くときハッシュロケットと「あり・なし」で、位置が変わるのがややこしい。 - @obregonia1 - 今日の範囲は難しかったけど、制御構造は少し間違えただけでも意図していない挙動をするので気をつけた方が良さそう - @yatsuhashi - 途中マイクミュート解除を忘れて独り言状態になってました ## 2021\-07\-01 ### 参加者 - @eatplaynap - @isshi-hasegawa - @hosso - @yatsuhashi - @obregonia1 - @shirotamaki - @pctapitapitapi ### 司会 - @obregonia1 ```ruby %w[eatplaynap isshi-hasegawa hosso yana-gi shirotamaki yatsuhashi obregonia1].sample ``` [タイマー](https://timer.onl.jp/) ### ドライバー - @shirotamaki ```ruby %w[isshi-hasegawa hosso yana-gi shirotamaki yatsuhashi obregonia1].sample ``` ### スタート地点 - 第4章 4.10.4から ### 疑問点・気づき #### 第4章 4.11(最後)まで - @eatplaynap - 配列の章3週間くらいやってたかな? - 制御構造はこういうものがあるくらいしか分からなかった。すきあらば使って身につけたい - `redo`と`next`は`break`や`return`よりも直感的に動きが分かりやすい気がする - @yana-gi - `redo`を使う場合は無限ループにならないように`count`変数でやり直しの制限をする。 - 配列が終わった!!長かった〜 - 配列の章を通して`Enumerator`(イヌマレーター)クラスや`Enumerable`モジュールの理解が深まった😸 - 😸 - 😸😸 - 😸😸😸 - @shirotamaki - `next` 、`redo` は使い勝手が良さそう。 - 名前も動きとリンクしているのでイメージがつきやすい。 - 配列は普段からも一番お世話になっている内容だったので、今回輪読会で深堀りできてよかった。自信がついた。 - `irb`は、 macだと`option`+`Enter`で行を挿入できる(ユニさんありがとうごうございます!) - @isshi-hasegawa - 繰り返し処理のうち、特定の条件に該当する回だけ飛ばしたいという実装はかなりありそう - @hosso - `next`は直感的に分かりやすかったかな?`redo`時に離席していたので後で見返しておきます! - 配列の章終わり!配列の知識がしっかりついた感じがするかも。配列の章に出てくるメソッドの挙動も憶えた! - @obregonia1 - `next`や`redo`をキメて気持ちよくなりたい。。。 - @yatsuhashi - 配列長かった! - `break`、`next`は`while`、`until`、`for`の中でも使える - @pctapitapitapi - 初めて参加させて頂きました、よろしくお願いします🙇‍♀️ - ワイワイ - 🙌 - 🙌🙌 - 🥳 - :tada: - カレンダープログラムで```next```を使ってみましたが上手くいきませんでした😅使い方はシンプルですが実際に使うと上手く使えなかったので```redo```も合わせて積極的に使っていって、ここぞという使い方を理解していきたいです。 #### 第5章 5.2.3まで - @eatplaynap - 5.2の最初で「他の言語では連想配列やディクショナリ(辞書)、マップ」と呼ばれるとあるが、Rubyのmapメソッドと何か関係あるんでしょうか? - Javaだと連想配列をマップと呼ぶ - もともと写像という意味 ![](https://i.imgur.com/4cH5JvS.png) - SetオブジェクトはHashのキーだけらしい〜 - @shirotamaki - ハッシュの基本はSinatraで使ったところだったので理解しやすかった。 - デフォルト、初期値については、知らなかったので勉強になった。 - [Hash\.new \(Ruby 3\.0\.0 リファレンスマニュアル\)](https://docs.ruby-lang.org/ja/latest/method/Hash/s/new.html) - ハッシュも奥が深そうだ。輪読会を通して理解を深めたい。 - [数]写像 /map /mapping/  集合mの任意の要素に対し、集合nの一つの要素を対応させる規則をmからnへの写像という。 - @yana-gi - Hashオブジェクトを`{}`や`Hash.new`(引数を指定しない)で作成した場合、存在しないキーを呼び出すと`nil`が返ってくる。 ```ruby irb(main):028:0> h = Hash.new => {} irb(main):029:0> h[0] => nil irb(main):030:0> h['foo'] => nil ``` - `Hash.new`に引数を渡してデフォルト値を設定した場合、存在しないキーを呼び出すとそのデフォルト値が返ってくる。Hash自体には登録されない。 ```ruby irb(main):025:0> h = Hash.new('hoge') => {} irb(main):026:0> h[0] => “hoge” irb(main):027:0> h['foo'] => “hoge” irb(main):095:0> h => {} ``` - `Hash.new`にブロックパラメーターを渡すと、存在しないキーを呼び出した際にハッシュにkeyとデフォルト値のvalueが登録される。 ```ruby irb(main):085:0> h = Hash.new {|h,key| h[key] = 'hoge'} => {} irb(main):086:0> h[0] => “hoge” irb(main):087:0> h => {0=>"hoge"} irb(main):089:0> h['foo'] => “hoge irb(main):090:0> h => {0=>"hoge", “foo”=>"hoge"} irb(main):091:0> ``` 参考:https://docs.ruby-lang.org/ja/latest/method/Hash/s/new.html - @isshi-hasegawa - @yatsuhashi さんのおかげで、るりまが読めるようになった - [Hash\#fetch \(Ruby 3\.0\.0 リファレンスマニュアル\)](https://docs.ruby-lang.org/ja/latest/method/Hash/i/fetch.html) - `key に関連づけられた値を返します。該当するキーが登録されていない時には、引数 default が与えられていればその値を、ブロックが与えられていればそのブロックを評価した値を返します。` - @obregonia1 - ハッシュのデフォルト値について理解できてよかった - @yatsuhashi - `Set`オブジェクトと`Hash`が関係あるのは知らなかった - @pctapitapitapi - ハッシュずっと苦手だったんですが、今回輪読会で一緒に勉強出来て質問させてもらえるのでとても勉強になっています、ありがとうございます🙇‍♀️ - ハッシュのデフォルト値について理解できたのですが、最後のブロックでデフォルト値を指定するやつがちょっと分かりにくかったです。なるほどるりまに書いてあるんですねすごい。。。 ```ruby= new {|hash, key| ... } -> Hash ``` ### 振り返り(よかった点・次回に向けての改善点等) - @eatplaynap - さすがに2時間やると結構進む! - 休憩の区切りがわからん…なんか意見ください〜 - 1サイクル終わったタイミングでいいと思った - やつはしさんの深堀りはいつもためになる💪 - 司会のobregoniaさんが初参加のpctapitapitapiさんを気遣っていたのがさすがと思った - 完全に同意 - ありがたし🙏 - :sorena: - 👍 - @yana-gi - 今日は進んだだけじゃなくてHashの深掘りもできたのでボリュームたっぷりだった。満足😊 - るりまがちょっとずつ読めるようになってる……! - ぺろさん初参加なのに質問していてすごい!       - みなさんの雰囲気が素敵なので質問できました、ありがとうございます! - @isshi-hasegawa - 週6時間ペース良い! - 週の1日だけ長いとメリハリがある - 単純計算で、5周目までで25時間Rubyを勉強してる - @yatsuhashi - あっという間に6週目まで来てすごい - yana-giさんの言葉、とてもよかった - 😍 - :yatta: - @pctapitapitapi - 実際に参加してみると輪読会で話している内容の解像度が全然違いました。今回でハッシュ嫌いが改善できるかもしれません - みなさん気を遣ってくださって本当にありがたかったです、お互いを尊敬しあう素敵な関係を築かれていて素晴らしいなと感じました、優しい世界に感謝🙏 - エモい!!いい話!! - @shirotamaki - 2時間も案外あっという間だった〜 - 週一なら全然問題なさそう。 - 新しくぺこさんも来てくれて嬉しい - ぺろさんですね…笑!! - pctapitapitapiでもかまいませんよ👍 - すいません🙏 - @obregonia1 - ペロさん初参加で質問できてていいと思いました👏 - 司会お疲れ様でした! - みなさんの雰囲気がいいので質問できました!みなさんのお陰です🙇‍♀️ ## 2021\-07\-02 ### 参加者 - @eatplaynap - @shirotamaki - @hosso - @isshi-hasegawa - @yana-gi - @pctapitapitapi - @obregonia1 - @yatsuhashi ### 司会 - @eatplaynap ```ruby %w[eatplaynap isshi-hasegawa hosso yana-gi shirotamaki yatsuhashi obregonia1].sample ``` [タイマー](https://timer.onl.jp/) ### ドライバー ```ruby %w[isshi-hasegawa hosso yana-gi shirotamaki yatsuhashi obregonia1].sample ``` ### スタート地点 - 第5章 5.3から ### 疑問点・気づき #### 第5章 5.3.2まで - @eatplaynap - シンボルは整数→わかる - 実行環境によって`object_id`が異なる→わからん(整数の`object_id`はどの実行環境でも同じという認識) - Sinatraでハッシュを取り出すとき、`['hoge']`という書き方と`[:hoge]`という書き方をわけもわからず混在させていたのでシンボルで書き直してみようと思った - @yana-gi - 「表面的には文字列と同じように見えますが、その中身は整数なのです」にずっと???状態だったけど、今日の輪読会とるりまのこの説明で理解できた。 > シンボルは、ソース上では文字列のように見え、内部では整数として扱われる、両者を仲立ちするような存在です。 https://docs.ruby-lang.org/ja/latest/class/Symbol.html - @shirotamaki - シンボルが高速である以外の事が理解できた - 特にハッシュで使ってやっと理解できた - 内部的に整数 - `'apple'.methods` `:apple.methods`は、StringとSymbolクラスのメソッドを返している。`apple`じゃなくても同じ。 - [class String \(Ruby 3\.0\.0 リファレンスマニュアル\)](https://docs.ruby-lang.org/ja/3.0.0/class/String.html) - [class Symbol \(Ruby 3\.0\.0 リファレンスマニュアル\)](https://docs.ruby-lang.org/ja/latest/class/Symbol.html) - @isshi-hasegawa - `Symbol`クラスのメソッドを色々考察できてよかった - `Object#object_id`を意識することで、どういう操作をしたらメモリ空間に生成されるかなんとなく理解できた - @hosso - シンボルは「内部的には整数」 - `catch`と`throw`のタグを整数で指定しても問題なく実行できました。 ```ruby= # チェリー本4.10.2、catchとthrowのコード例のタグを整数の1で指定 irb(main):020:0> numbers = [1,2,3,4] => [1, 2, 3, 4] irb(main):021:0> fruits = ['apple', 'melon', 'orange'] => ["apple", "melon", "orange"] irb(main):022:1* catch 1 do irb(main):023:2* fruits.shuffle.each do |fruit| irb(main):024:3* numbers.shuffle.each do |n| irb(main):025:3* puts "#{fruit}, #{n}" irb(main):026:4* if fruit == 'orange' && n == 3 irb(main):027:4* throw 1 irb(main):028:3* end irb(main):029:2* end irb(main):030:1* end irb(main):031:0> end ``` - @obregonia1 - シンボルは速いみたいなイメージだったけど内部的に整数だから速いことがわかった - @pctapitapitapi - 文字列とシンボルの違いがやっと理解できた、気がする - 一番なるほどできた言葉、るりまに書いてあった >文字列そのものが必要なわけではない時にシンボルを使用 - ハッシュもシンボルも使い所がまだ分からないので、積極的に使うように心がけていきたい - @yatsuhashi - シンボルは文字列と1対1で対応している ### 振り返り(よかった点・次回に向けての改善点等) - @eatplaynap - 1人1個は毎回質問が出るのでよい - けど、もうちょっと人数少なめの方が全員話せそうだからグループ分けしてもいいかな〜〜 - ぺろさんが質問してくれて`catch`と`throw`の復習できてよかった    - こちらこそ、ありがとうございます🙇‍♀️ - タイムキープ難しい - @yana-gi - よく分かってないけど雰囲気で使っているものランキング上位だったシンボルのことが前より理解できてよかった! - みんな当たり前のように手元でるりまを読んでいて素晴らしい - 👍 - @isshi-hasegawa - たしかに発言回数減ってるのかも…? - @hosso - ドライバーの方の画面見つつ、自分の手元でも動かしつつでかなりirbの練習になる。 - 自分の手元でも動かしたい(切実) - 😭 - 😭😭 - 😭😭😭 - シンボルよくわからん状態から少し抜け出せたかな? - 理解に自身のない章をみんなでやっていくのは楽しいですね! - :washimo::souomou: - @yatsuhashi - シンボルの特徴を理解した - シンボルの方が早い、というのが効いてくるとこがあるんだろうなー - @shirotamaki - さらっと分かっている気でいたシンボルだが、少しづつ理解できてきたのでよかった。 - 引き続き第5章で取り上げていくなかでさらに深く理解したい。 - 昨日は2時間だったからか、少し物足りないかも。 - たしかに`irb`と`るりま力`が上がってきた。特に`irb`は今まで全然使えていなかったが、だいぶ使えるようになってきた。 - モブプロはできるだけ手元を見ないのが原則(駒形さん) - 自分の手元で気づいたことは共有した方がいい(yana-giさん) - :subarashi: - Discordに貼ったりして共有 - @obregonia1 - Railsでは割とシンボルを使うことが多いから、シンボルについて理解していた方が良さそう - @pctapitapitapi - 自分一人ではシンボルのことこんなに深掘らないので、みんなで話し合って自分からは出てこない意見とか案が聞けるのがありがたいです。 - ドライバーやるの難しそうだなと思いました、自分がirb使う時もたつきそう、緊張

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully