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 methodput' 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 !xunless 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} と書き換え可能