チェリー本 2章 その4
rubyの?で終わるメソッド
Rubyのメソッド名の中には?や!で終わるものが存在する。
?で終わるメソッドは真偽値を返すメソッドになる。
p "".empty? p "abc".empty? #引数に文字列が含まれているか?? p "watch".include?("at") p "watch".include?("in") => true false true false
上のnil?やempty?は最初からrubyで定義されている。
rubyは自分で?で終わるメソッドを定義することが出来る。
真偽値を求める時は?を使うようにする。
def method_name?(x) p x == 1 end method_name?(1) method_name?(2) method_name?(3) => true false false
rubyの3つのライブラリー
組み込みライブラリー
rubyはあらかじめ数多くのライブラリーが標準で搭載されている。
例えばstring(文字列)、integer(数値)がある。
標準ライブラリー
組み込みではにが標準ライブラリー存在する。
Dateクラスとかが該当する。
外部ライブラリー(gem)
有志の開発者が作成してくれた外部ライブラリー
インストール不要
インストール必要
require
標準ライブラリーはインストールは不要だが
標準ライブラリーとgem読み込み必要がある
次のような構文を使います。
require ライブラリー名
Dateクラスを使いたい時は...
require "date" p Date.today => #<Date: 2021-04-26 ((2459331j,0s,0n),+0s,2299161j)> requireないと構文エラー Traceback (most recent call last): fizz_buzz.rb:1:in `<main>': uninitialized constant Date (NameError) Did you mean? Data
require_relative
実行したいファイルのディレクトリからの相対パスで該当のファイルを探しに行くいまいちよくピンと来ないのでぐぐることにしました。
require | require_relative |
---|---|
カレントディレクトリーを示す ./の記載が必要 |
カレントディレクトリを示す ./を付けなくていい |
例えば...
# sample.rbがtest.rb読み込む時 require './test' #./が必要 sample = Sample.new sample.test # test.rb class Sample def test puts '読み込みOK!' end end #一方でrequire_relativeの場合 # sample.rb require_relative 'test' #./省略可能! sample = Sample.new sample.test Copy # test.rb class Sample def test puts '読み込みOK!' end end
1章を通してタメになるところはめちゃめちゃタメになりました。
中には難しい場所もあったけど繰り返しコード書きまくって覚えたいと思います。