1/13 学習記録 Ruby入門
<目標>
- RUBY入門5章まで
- 他の人の日報を読む
- タイムキープをすること
- 日常作業も並行してこなすこと
- *18ポモドーロ
どこまでいけるかわからないけれどいってみよう!
<メモ>
第1章
(Terminal) open .
- フォルダを開く
第2章
メソッドとオブジェクト - puts 1
1+2+3
- 1+2をして3を足す
- ()をつけると先に計算する 1+(2+3) 2+3してから1を足す
小数のある数字と整数は別扱い
1 / 4 = 0 1.0 / 4.0 = 0.25 1 / 4.0 = 0.25 0.1 / 4 = 0.025
文字列と数は足し算できない
- 'to_i' 文字列を数に変換
- 'to_s' 数を文字列に変換
order = "カフェラテ" - 変数にオブジェクトを代入
式展開
#{計算式}
を文字列に埋め込む- 式の中に文字列を埋め込むの反対
#{変数}
もできる
gets
- 文字列をプロンプト x = gets #入力された文字 とn¥(改行) y = gets puts x + y
.chomp 末尾を末尾の改行文字を取り除く
- "2¥n".chomp > 2
変数の頭の文字を大文字に帰ると定数になる
- 変数のように入れ替えができるが、waringが出る。
コメント
# 行の中でのコメント - =begin/=end 行をまたがってのコメント
irbでコマンドをリアルタイムに実行できる
- putsメソッドがいらない
- exitで終了
irbで日本語表記
- irb起動時に
irb --noreadline
で起動
p メソッドでデバッグ
- コードの中に
p 変数
で変数の中身を表示させ
エラーメッセージ
Traceback (most recent call last): hi.rb:1:in `<main>': undefined method `put' for main:Object (NoMethodError) Did you mean? puts putc hi.rb:1:in `<main>': undefined method `put' for main:Object (NoMethodError)
- コロンで区切られている hi.rb = ファイル名、 1 = エラーの行数、in
<main>' =省略、undefined method
put' for main:Object =エラーの名
# 第3章
<>比較メソッド
- ture or falseで返す。これらもオブジェクト
末尾に ?
puts 2.even?
はture /puts 2.odd?
はfalse
後置if
- if文の実行内容が1行で済む場合、if文を実行文の後ろにつける(endは不要)
puts "アイス買う!" if wallet >=300
if !x
とunless x
は同じ結果を出す2分岐以上のif if
elseif else それ以上は &&,CASE,||を利用する
if 100 , if ハワイ はtrue扱い
- nil や falseでなければtrueとして処理が分岐する
複数の分岐 case と when
wallet = 300 case when wallet > 500 puts "yeah" when wallte >300 puts "all right!" end
繰り返し
n.times do end
or n.times {}
第4章 配列
配列は"arrayという名前の"オブジェクト
- 整数はintager、小数はfloat、文字列はstring
- numbers=[1,2,4]の配列の中身を指定するときは numbers[0],numbers[1]のように指定。後ろからの場合はnumbers-1のように指定
- .first .last メソッドで配列の最初と最後を取得 puts numbers.
3.to_i/3.timesのようにオブジェクトに直接メソッドが使える
pushとunshiftと<<
popとshift
- それぞれが削除する要素を表示する
配列のたし算ひき算 - 配列を足すと、合体した一つの配列ができる
eachメソッド 配列を全て繰り返す
- eachによって個別に取り出された要素が||の間に取り込まれる
- 繰り返しの回数は配列の要素の数が指定される
- 間にbreakを入れることで処理が止まる
- nextはその回の処理を行わない
第5章
.size[]
- 配列の要素の数
.sum
- 配列の要素の合計
リファレンスマニュアル
!がつくメソッドは破壊的変更が多い
.join("文字列") 配列を文字列へ変換 .split(”文字列”) 文字列を配列へ変換
.eachと.map .eachは各オブジェクトへの働き、.mapは配列を得る
array = ["abc","bcd","cde"].map {|text| text.reverse} を array = ["abc","bcd","cde"].map {&:reverse} と書き換え可能