6 月
[ruby]6/18に学んだこと
- メソッド
- すべてのメソッドは何らかのオブジェクトによって実行される。
- 演算子もメソッド(.+、.-、.*、./)
- putsはプログラム全体を囲うmainオブジェクトによって実行される。
- 文字列メソッド
- ”.reverseは文字列を逆順にしたものを返す。非破壊。
- ”.lengthは文字列のキャラクタ数を整数で返す。
- ”.upcaseは文字列内の英字を大文字にする。非破壊。
- ”.downcaseは文字列内の英字を小文字にする。非破壊。
- ”.swapcaseは文字列内の英字の大文字・小文字を逆転するにする。非破壊。
- ”.capitalizeは文字列の先頭のキャラクタを大文字にする。非破壊。
- ”.center(w)は幅w内で文字列を中央寄せする。非破壊。
- ”.ljust(w)は幅w内で文字列を左寄せする。非破壊。
- ”.rjust(w)は幅w内で文字列を右寄せする。非破壊。
- ”.split(s)は文字列をsで分割した配列を返す。
- 数学
- **はべき乗演算メソッド。5**2→25、5**0.5→2.23620679…
- %は剰余演算メソッド。7%3→1、1.2%0.5→0.2
- 1.absは数の絶対を返す。-1.abs→1、-1.55.abs→1.55
- randは0.0以上、1.0未満の浮動小数点の乱数を返す。
- rand(w)は0以上、w未満の整数の乱数を返す。
- Math::PIは円周率を表す浮動小数点の定数。
- Math::Eは自然対数の底を表す浮動小数点の定数。
- Math.cos(t)はtラジアンのコサインを返す。
- Math.sin(t)はtラジアンのサインを返す。
- Math.tan(t)はtラジアンのタンジェントを返す。
- Math.log(n)は底がeのときの数値nのログを返す。
- Math.sqrt(n)は数値nの平方根を返す。
- ::はスコープ解決演算子
- 比較メソッド
- <、>、<=、>=、==、!=、などは比較メソッド。
- true、またはfalseの特別なオブジェクトを返す。
- 数値の比較は数学の通り。
- 文字列の比較は、先頭のキャラクタからASCIIコードの大小で比較する。
- 分岐
- if….endパターン
- if 条件
- # trueの時の処理
- end
- if…else…endパターン
- if 条件
- # trueの時の処理
- else
- # falseの時の処理
- end
- if…elsif…endパターン
- if 条件1
- # 条件1がtrueの時の処理
- elsif 条件2
- # 条件2がtrueの時の処理
- end
- if….endパターン
- ループ
- while 継続条件
- # 繰り返す処理
- end
- 配列
- 配列は[]でくくったオブジェクトのリスト
- 配列の例
- []
- [111]
- ['a', true]
- [[true, false], f, 111.111] # fは変数。変数の中身が入ったと考えるべきか。
- 要素を1つ以上保持している配列をputsすると、各要素が改行で区切られて表示される。
- 配列の添え字はゼロベース
- 配列の要素が未定義の場合は、その要素はnilオブジェクトになる。
- [].eachメソッドはイテレータである。
- fruits = ['apple', 'バナナ', 'orange]
- fruits.each do |f|
- puts f
- end
- [].to_sは配列を改行区切りで文字列として返す。非破壊。
- [].join(s)は配列を文字列s区切りの文字列として返す。非破壊。
- [].lengthは配列の要素数を整数で返す。
- [].lastは配列の最後の要素を返す。非破壊。
- [].popは配列の最後の要素を取り除く。破壊的。
- [].pushは配列の最後に要素を付加する。破壊的。
- .timesイテレータ
- 1.timesは0からその数字-1までのイテレータ
- 3.times do |c|
- puts c # 0, 1, 2が表示される
- end
- 1.timesは0からその数字-1までのイテレータ
- 独自メソッドの定義(define)
- 独自メソッドはdef~endで定義できる
-
- def メソッド名
- # メソッドの中身の処理
- end
- 引数はメソッド名の後に続ける
-
- def メソッド名 引数1
- # メソッドの中身の処理
- end
- メソッドの中の変数はすべて局所変数として扱われる。
- 返り値は、最後に評価式またはreturnに続く式が採用される。
- ファイル
- 書き込み
- File.open filename, ‘w’ do |f|
- f.write str
- end
- 読み込み
- str = File.read filename
- 書き込み
- YAML
- require ‘yaml’でYAMLライブラリをインポート
- [].to_yamlで配列をYAML文字列化
- YAML::load 文字列でYAML文字列を配列化
- Dirオブジェクト
- Dir[ファイル名]でファイル名の配列を返す
- ex) Dir['aaa.jpg']
- ex) Dir['*.{PNG,png}']
- ex) Dir['../*.{JPG,jpg}']
今のことろは感動しないなぁ。勉強する本を間違えたかな(汗
