プログラミング漫遊記

思ったことや、勉強したことをつらつらと。

ruby

自作クラスのインスタンスをtallyで集計する

独自に作ったクラスを何らかの基準で「同じもの」と判断させtallyメソッドで集計したい。 ここではDrinkクラスを定義しname(商品名)とprice(値段)がそれぞれ等しいなら「同じ(同値)」だとみなしてドリンクが何本あるか集計したいとする。 やりたいことは以下…

all? と any? の変換と論理学

昔なんかの書籍でArray#all?で書いたコードをany?に変換しましょう(逆だったかも)というのがあって結構苦手だったんだけど、これだたの論理式では?と思い直したら楽になったので記しておく。 最近(数理)論理学の学び直しをしてるのにプログラミングと全然結…

【Ruby】等差数列の配列をつくる

たとえば、3から23までの範囲で、4ずつ増えていく数列の配列を作りたいとする。 数学的にいうと初項3、公差4の数列を23になるまで作りたい こんな感じ。(最後のやつがいいたいくて書いたブログです) [3, 7, 11, 15, 19, 23] やり方を色々考えてみる。 環境…

【Ruby】2重配列から特定の位置にある要素の配列を作る

先日、ド忘れして困ったので、忘備録として。 たとえば1つ目の要素だけを集めた配列を作りたいとする。 こんな感じ。 # 1つ目の要素だけを集めた配列を作るイメージ [[1, 2, 3], [4, 5, 6], [7, 8, 9]] => [1, 4, 7] Enumerable#mapを使うと簡単 ary = [[1, …

Enumerableモジュールのメソッドツアー - max_byメソッド

Enumerableモジュールのメソッドを1記事1メソッドで雑に紹介していくコーナー第3弾です。 前回はmaxメソッドを紹介しました。 haruguchi-yuma.hatenablog.com 今回はmaxメソッドにとても似ているmax_byメソッドについて紹介します。 max_byメソッド まずはる…

Enumerableモジュールのメソッドツアー - maxメソッド

Enumerableモジュールのメソッドを1記事1メソッドで雑に紹介していくコーナー第2弾です。 前回はall?メソッドを紹介しました。 haruguchi-yuma.hatenablog.com 今回はmaxメソッドについて紹介していきます。 maxメソッド irbで挙動の確認。 ブロックなしの場…

【Ruby】Enumerableモジュールのメソッドツアー - all?メソッド

こんにちは。はるぐちです。 Enumerableモジュールってご存知でしょうか。そうArrayとかHashとかにインクルードされている便利なやつ。 これのおかげで反復処理がスムーズにできると言っても過言ではないEnumerableモジュールですが、メソッドを全部知ってい…

「勝手にモブプロ」というのを勝手にやってみた

2月からフィヨルドブートキャンプで「勝手にモブプロ」という会をはじめてみて、ちょうど?17回目を終えたので感想をば。 勝手にモブプロ会とは? 僕(@haruguchi)がフィヨルドブートキャンプで勝手にやっているモブプロ会になります。 実際、参加募集してい…

【Ruby】selfキーワードとメソッド呼び出し

selfキーワードとメソッド呼び出しについて学習したのでまとめておきたいと思います。最初に言っておくとめちゃめちゃ長いです。 self selfとは インスタンスメソッドとクラスメソッドのself いろんな場所でselfの中身を確かめてみる メソッド呼び出し 前提…

【Ruby】ミュータブルとイミュータブル

フィヨルドブートキャンプでチェリー本の第1版の輪読会をやっているんですが、その時出てきた「ミュータブル」と「イミュータブル」について誤解していたのでまとめたいと思います。 ミュータブル・イミュータブルとは ミュータブルなオブジェクトの例 ミュ…

困ったときはターミナルへ出力だ!プリントデバッグ入門

こんにちはフィヨルドブートキャンプで学習中のはるぐちです。 この記事はフィヨルドブートキャンプ Part 1 Advent Calendar 2021の14日目の記事になります。 前回はmasuyama13さんの「コードより先にコミットメッセージを書く」でした。 techblog.tebiki.co…

改訂版・チェリー本発売記念 点字メーカープログラムに挑戦してみた!(Advent Calendar 2021/Qiita主催)

フィヨルドブートキャンプで学習中のはるぐちです。 伊藤淳一(@jnchito)さん著『プロを目指す人のためのRuby超入門/技術評論社』(通称チェリー本)の改訂2版が発売されたということでRubyプログラミング問題にチャレンジ! -改訂版・チェリー本発売記念-…

【Ruby】二次元配列についての色々な操作を考えてみた#2(配列の合計値)

こんにちは!はるぐちです。フィヨルドブートキャンプで学習中です。 この記事は二次元配列シリーズの第2弾で、二次元配列の合計値を計算することについて考えていきます。 前回の記事はこちら。 haruguchi-yuma.hatenablog.com 2.二次元配列の合計値を計算…

【Ruby】二次元配列についての色々な操作を考えてみた#1(最大文字数取得)

こんにちは。はるぐちです。フィヨルドブートキャンプで学習中です。 今回は二次元配列について考えてみました。 普通の配列については以前こんな記事を書いたので参考にしてください。 haruguchi-yuma.hatenablog.com 二次元配列って? 二次元配列とは配列…

【Ruby】ハッシュを使って条件分岐を減らそう!

こんにちは「はるぐち」です。フィヨルドブートキャンプで学習しています。 今回はある値によってたくさんの条件分岐をしたいとき、ハッシュを使うとシンプルになることを学んだので忘備録として記述しておきたいと思います。 想定 果物がたくさん入った配列…

【Ruby】ボウリングプログラムで気づいたeach_with_objectの便利さ!

フィヨルドブートキャンプではプラクティスとしてボウリングのスコア計算プログラムを作成します。提出物に合格をもらった後、他の受講生のコードを読んでいて初めて知ったメソッドにeach_with_objectというメソッドがあります。これはめちゃくちゃ便利じゃ…

【Ruby】配列の作り方

複数のデータをひとまとめにしたいとき、配列を作ると思います。 そこで配列の作り方を自分なりにまとめてみました。 配列の作り方 []を使う # 空の配列を作る [] [].size # => 0 [].class # => Array 文字列を''で囲むように、[]を使って囲むと簡単に配列が…

クラスメソッドの中でプライベートメソッドは呼べない

前回アプトプットシリーズとしてRubyで「ビンゴカード作成問題」に挑戦したのですが、そのときにメソッドのことで勘違いがあったので忘備録として書いておきたいと思います。 haruguchi-yuma.hatenablog.com どんなことを勘違いしていたのかというとクラスメ…

ビンゴカード作成問題にチャレンジしてみた。

前提 フィヨルドブートキャンプ(以下、フィヨルド)というプログラミングスクールで学習しています。 フィヨルドでは、分野ごとにたくさんのプラクティスがあり、Rubyのプラクティスもそのうちの一つになります。 他にもDB設計のプラクティスがあったり、sin…