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

4.2 文字列とメソッド

irbの設定

エディタが開くので本文のコードをコピペ

Ctrl-X → Y → Enter

コンソールを起動する

rails cに省略可能

4.2.1 コメント

本文ママ

4.2.2 文字列

文字列は「””」で囲む

展開式

変数を#{}で囲んで代入した値を展開する

出力

環境によってはバックスラッシュが¥に見えてるかもしれませんが/(スラッシュ)の逆向きのやつです

putsメソッドとnil

putsメソッドの戻り値は実はnil
上記の例で言えば、文字列”foo”はputsの戻り値ではなく副作用として表示されている

シングルクォート内の文字列

演習

  1. city変数に適当な市区町村を、prefecture変数に適当な都道府県を代入してください。
  2. 先ほど作った変数と式展開を使って、「東京都 新宿区」のような住所の文字列を作ってみましょう。出力にはputsを使ってください。
  3. 上記の文字列の間にある半角スペースをタブに置き換えてみてください。(ヒント: 改行文字と同じで、タブも特殊文字です)
  4. タブに置き換えた文字列を、ダブルクォートからシングルクォートに置き換えてみるとどうなるでしょうか?

※タブを表す特殊記号「\t」

4.2.3 オブジェクトとメッセージ受け渡し

Rubyではあらゆるものがオブジェクトである
オブジェクトとは → 考えるな感じろ(4.4.2で説明があるとの事)
オブジェクトが何をするか → メッセージに応答する

オブジェクトに渡されるメッセージ → メソッド → そのオブジェクト内で定義されたメソッド
上記で言うとlengthがメソッド

論理値(trueかfalse)を返すときは末尾に?を付ける習慣がある

演算子を使うことも出来る

nil(空っぽ)もオブジェクト → 多くのメソッドに応答できる

nilかどうかを調べる

オブジェクトそのものの論理値がfalseになるのはfalse自身とnilだけ
!(否定)を付けると論理値が反転
!!(バンバン)は2回否定なので強制的に論理値に変換できる

演習

  1. “racecar” の文字列の長さはいくつですか? lengthメソッドを使って調べてみてください。
  2. reverseメソッドを使って、”racecar”の文字列を逆から読むとどうなるか調べてみてください。
  3. 変数sに “racecar” を代入してください。その後、比較演算子 (==) を使って変数sとs.reverseの値が同じであるかどうか、調べてみてください。
  4. リスト 4.9を実行すると、どんな結果になるでしょうか? 変数sに “onomatopoeia” という文字列を代入するとどうなるでしょうか? ヒント: 上矢印 (またはCtrl-Pコマンド) を使って以前に使ったコマンドを再利用すると一からコマンドを全部打ち込む必要がなくて便利ですよ。)

4.2.4 メソッドの定義

「暗黙の戻り値がある」と、言う事

演習

  1. リスト 4.10のFILL_INの部分を適切なコードに置き換え、回文かどうかをチェックするメソッドを定義してみてください。ヒント: リスト 4.9の比較方法を参考にしてください。
  2. 上で定義したメソッドを使って “racecar” と “onomatopoeia” が回文かどうかを確かめてみてください。1つ目は回文である、2つ目は回文でない、という結果になれば成功です。
  3. palindrome_tester(“racecar”)に対してnil?メソッドを呼び出し、戻り値がnilであるかどうかを確認してみてください (つまりnil?を呼び出した結果がtrueであることを確認してください)。このメソッドチェーンは、nil?メソッドがリスト 4.10の戻り値を受け取り、その結果を返しているという意味になります。

4.2.5 titleヘルパー、再び

titleヘルパーの解説は本文ママ

module ApplicationHelper

module → 関連したメソッドを纏める方法の一つ
includeメソッドを使って読み込むことが出来る

railsではinclude行を書かなくても自動的にヘルパーmoduleを読み込んでくれる
 →自動的にすべてのビューで利用できる

まとめとか感想

良くわかっていない用語が多かったので
調べて(ある程度)納得するのに中々時間がかかってしまいました🐫💦
苦手意識が強い部分なのでじっくり向き合いたい。

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

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

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