学習記録

2020-02-09に作成

個人用の学習記録。成果がなくとも毎日更新。

所有者限定モードのためこのボードには投稿できません ボードとは?

LPIC Lv1

GRUB2の設定ファイルについての疑問
パーティションの番号はどう指定すればいいのかが分からなかった。
参考にした情報によると「(GRUB2の場合は)パーティション番号は(以前のバージョンのやり方である)ゼロから、ではなく1から数え始めます。」
とのことらしい。

参考:Linuxのインストールとパッケージ管理(主題102) のコマ問について


プロを目指す人のためのRuby入門

7.10.4 演算子の挙動を独自に再定義する

演算子の中にも再定義できるものとできないものがある。

再定義できるかどうかはドキュメントを参考にする。

ここでは例としてProductクラス同士を下記のように比較できるように再定義する。

a = Product.new('A-0001')
b = Product.new('B-0002')
c = Product.new('A-0001')
a != b  #=> true
a == c  #=> true
a != 1  #=> true
class Product
  def ==(other)
    if other.is_a?(Product)
      code == other.code
    end
  end
end

補足

==はメソッドなので先頭に.をつけて呼ぶことができる。

a.==(c) #=> true

また、==が呼び出されるのは左辺のオブジェクトなので、
右辺に書いた場合はProduct#==は呼ばれない。

7.10.5 等値を判断するメソッドや演算子を理解する

等値を判定するメソッドには4種類ある。
- equal?
- ==
- eql?
- ===
このうちequal?以外は再定義が可能。


プロを目指す人のためのRuby入門

7.6 クラスの継承

DVDクラスがProductクラスを継承すると、そこにスーパークラスとサブクラスの関係が生まれる。

継承でよくある誤解として「クラスの機能を全部引き継ぐ」という考えがある。
この考えだと非常に扱いづらいクラスが出来上がるので、「性質や概念の共通点」に着目する必要がある。
こう考えるための概念として「is-aの関係」がある。
例えば、販売管理システムにおける「DVDは商品の1種である(DVD is a product)」の関係は違和感がないはず。

OOPの参考書として「オプジェクト指向設計ガイド」がある。

7.6.1 標準ライブラリの継承関係

Rubyの継承は単一継承。(ミックスインという多重継承に似た機能は8章で説明)
継承関係の頂点にはBasicObjectクラスがあるが、特殊な用途でない限りObjectクラスが頂点と考えて良い。
(Ruby1.9以前はObjectクラスが継承関係の頂点にいた。)