技術検証したり、資格等をここに残していきます。技術Rubyのメソッドよくわからないものが多いので、素振りします。今回の記事では、tapメソッドとthenメソッドを理解するために素振りしました。私はJavaをメインとしたエンジニアのため、Javaに置き換えた記載もあります。環境Ruby3.0.2p107RSpec要約tapメソッドreturnはself。元のインスタンスに対して副作用を起こします。Javaに置き換えるとラムダ式のpeekメソッドに似ている。thenメソッドreturnはBlock。元のインスタンスに対して副作用を起こします。yield_selfメソッドと同じ(エイリアス)。Javaに置き換えるとラムダ式のmapメソッドに似ている。自作クラスでないと挙動確認が難しかったため、開始日と終了日を持ったクラスを用意します。:end_dateendtapメソッドselfを渡して、selfを返却します。Returnはselfになるため、selfに値をsetしないと変更された状態で返却されません。Javaだとラムダ式のpeekに似ています。time.yearend値をsetする箇所を1つにまとめられるため、複数の値をセットしている場合に処理が散らずに可読性が上がりそうです。endendthenメソッドselfを渡して、ブロックの結果を返却します。yield_selfメソッドと同じ挙動をします(エイリアス)。tapとbreakを組み合わせても、thenメソッドと同じような挙動を得られるそうです。Javaだと副作用の有無はありますが、ラムダ式のmapメソッドに似ています。1endメソッドチェインを使いつつ、副作用を起こしうることを表現できそうです。OLLEH"endtapとthenメソッドを組み合わせるそのままだとミュータブルになってしまうので、イミュータブルな操作をするために一回clone等のコピーメソッドを仲介すると良いかもしれません。個人的にはイミュータブルな操作を目指したいのですが、Rubyでイミュータブルにするメリットは分からないので、あまり一般的な使われ方ではないかもしれません。GitHub終わりに個人的には、複数の値を1つのブロック内でsetできて、可読性が上がりそうな点が良いと思いました。今のところそれ以外の操作が思いつきません。うまく使いこなせれば可読性が上がるメソッドだと思うのですが、可読性以外のメリットがわからないのでもう少し使ってから考えたいと思います。この記事がお役に立ちましたら、各種SNSでのシェアや、今後も情報発信しますのでフォローよろしくお願いします。リファレンスマニュアル)教えていただいた情報:tapではオブジェクトに対してもオブジェクトの外に対しても副作用を与えるコードが多い気がしますが、thenで副作用があるとちょっと読みにくいなという感想です。(thenは歴史が浅いので、よく使うかと言われるとそうでも無いかなぁという気がします。私は代入を避けたいときによく使います。2021年12月13日メソッドチェーンで呼び出せなくて、さらに代入せずに結果値を使いたい時なので稀だと思います。Time型を得るのとかワンライナーとかでif書きたくないので便利ではあります。「Rubyのtapとthenメソッドを理解するために素振りした」をお読みいただきありがとうございます。役に立った、と思われましたら、ブックマーク・シェア・フォローをしていただければ嬉しいです。12:00Tweet関連記事2022-08-15Javaで期間と期間を比較して重複チェックするよくある内容の記事ですので、特別な内容はありません。8以降、Javaで文字列の日付存在チェックする(閏年でないときの閏日チェック)(Check...JSON等でデータのやりとりをする時には、直接日付型を渡すこと...2022-03-21JavaにてJSONからインスタンスを生成する(テスト時に重宝)個人的にはテストで多用していることが多いです。Jacksonライブ...2022-02-21Rubyでモックの呼び出し回数によって返却値を変更する同一のパラメータでメソッド呼び出しを行っている。12:00問い合わせはこちらから。//List形式の画面で記事を入れる場所。上から2個目と7個目のsectionの後に入れる。//記事内で個別に指定されないときに使うAd挿入場所。//0から始まる値で、2を指定すると3番目のと直前に差し込む。insertAdsense();引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。