らくだ🐫にもできるRailsチュートリアル|4.3

4.3 他のデータ構造

4.3.1 配列と範囲演算子

配列とは何ぞ

配列 (array) は、特定の順序を持つ要素のリストです。

sqlitメソッドで文字列を自然に配列へと変換できる

配列も様々なメソッドに応答する

配列に要素を追加する

Rubyでは異なる型が配列の中で共存できる

配列を繋げる

joinメソッドで配列を文字列に変換する

範囲とto_aメソッド

範囲オブジェクトに対してto_aメソッドを呼び出すと配列にして返してくれる

演習

  1. 文字列「A man, a plan, a canal, Panama」を “, ” で分割して配列にし、変数aに代入してみてください。
  2. 今度は、変数aの要素を連結した結果 (文字列) を、変数sに代入してみてください。
  3. 変数sを半角スペースで分割した後、もう一度連結して文字列にしてください (ヒント: メソッドチェーンを使うと1行でもできます)。リスト 4.10で使った回文をチェックするメソッドを使って、(現状ではまだ) 変数sが回文ではないことを確認してください。downcaseメソッドを使って、s.downcaseは回文であることを確認してください。
  4. aからzまでの範囲オブジェクトを作成し、7番目の要素を取り出してみてください。同様にして、後ろから7番目の要素を取り出してみてください。(ヒント: 範囲オブジェクトを配列に変換するのを忘れないでください)

4.3.2 ブロック

配列と範囲はいずれも、ブロックを伴うさまざまなメソッドに対して応答することができます。

その他のブロックの使用例

&:とはなんぞ


こちらの回答を読んでわかったような気持ちになりますが気持ちだけかもしれません(?
一先ず「(&:メソッド) → {|変数|変数.メソッド}の形のブロックの事」と思っていれば良さそうです

テストのコード

→テストはブロックで出来ている

ランダムな英小文字8文字を生成するコード

1.5.4で出てきたコードを読み解く

演習

  1. 範囲オブジェクト0..16を使って、各要素の2乗を出力してください。
  2. yeller (大声で叫ぶ) というメソッドを定義してください。このメソッドは、文字列の要素で構成された配列を受け取り、各要素を連結した後、大文字にして結果を返します。例えばyeller([’o’, ’l’, ’d’])と実行したとき、”OLD”という結果が返ってくれば成功です。ヒント: mapとupcaseとjoinメソッドを使ってみましょう。
  3. random_subdomainというメソッドを定義してください。このメソッドはランダムな8文字を生成し、文字列として返します。ヒント: サブドメインを作るときに使ったRubyコードをメソッド化したものです。
  4. リスト 4.12の「?」の部分を、それぞれ適切なメソッドに置き換えてみてください。ヒント:split、shuffle、joinメソッドを組み合わせると、メソッドに渡された文字列 (引数) をシャッフルさせることができます。

4.3.3 ハッシュとシンボル

整数以外の文字列などをインデックスとして設定できる(キーと呼ぶ・通常は何かしらのオブジェクト)
キーとその値を{}で囲んだ表記をハッシュと呼ぶ
→ハッシュの{}とブロックの{}は別物である
→ハッシュでは要素の並び順が保証されない(配列は保証される)
→Railsではハッシュのキーにシンボルを使うのが一般的
→シンボルには記号は使えない
→シンボルには数字から始まる文字列は使えない ×2foo ○foo2

ハッシュとeachメソッド

ハッシュに対してeachメソッドを実行すると
そのハッシュが持つキーと値のペアごとに処理を繰り返す

inspectメソッドとはなんぞ

対象の型通りの文字列を返すメソッド

演習

  1. キーが’one’、’two’、’three’となっていて、それぞれの値が’uno’、’dos’、’tres’となっているハッシュを作ってみてください。その後、ハッシュの各要素をみて、それぞれのキーと値を”’#{key}’のスペイン語は’#{value}’”といった形で出力してみてください。
  2. person1、person2、person3という3つのハッシュを作成し、それぞれのハッシュに:firstと:lastキーを追加し、適当な値 (名前など) を入力してください。その後、次のようなparamsというハッシュのハッシュを作ってみてください。1.) キーparams[:father]の値にperson1を代入、2). キーparams[:mother]の値にperson2を代入、3). キーparams[:child]の値にperson3を代入。最後に、ハッシュのハッシュを調べていき、正しい値になっているか確かめてみてください。(例えばparams[:father][:first]がperson1[:first]と一致しているか確かめてみてください)
  3. userというハッシュを定義してみてください。このハッシュは3つのキー:name、:email、:password_digestを持っていて、それぞれの値にあなたの名前、あなたのメールアドレス、そして16文字からなるランダムな文字列が代入されています。
  4. Ruby API (訳注: もしくはるりまサーチ) を使って、Hashクラスのmergeメソッドについて調べてみてください。次のコードを実行せずに、どのような結果が返ってくるか推測できますか? 推測できたら、実際にコードを実行して推測があっていたか確認してみましょう。

4.3.4 CSS、再び

レイアウトにCSSを追加する行の解説

読めるような読めないような。見慣れた形とちょっと違いますよね。
()とか{}が無い

stylesheet_link_tagメソッド

stylesheet_link_tag
stylesheet_link_tag(スタイルシートへのパス [, HTMLオプション])の形で使用する
上記のコードでは’application’がパスの指定
ハッシュの要素media: ‘all’, ‘data-turbolinks-track’: ‘reload’がHTMLオプション
これによって生成されたHTMLソースがこちら↓

まとめとか感想

長かった。ひたすら長かった。
でもとても勉強になった気持ちです。
気持ち大切。

らくだ🐫にもできるRailsチュートリアルとは

「ド」が付く素人のらくだ🐫が勉強するRailsチュートリアルの学習記録です。
自分用に記録していますが、お役に立つことがあれば幸いです。

調べたとはいえらくだ🐫なりの解釈や説明が含まれます。間違っている部分もあるかと思います。そんな所は教えて頂けますと幸いなのですが、このブログにはコメント機能がありません💧お手数おかけしますがTwitterなどでご連絡いただければ幸いです