【令和2年10月8日】 〜テックキャンプ4日目〜

〜文字列と数値を使おう〜

irbコマンド

 ターミナルから直接Rubyのプログラムを動かすことができる機能を起動するためのコマンド。終了する際はexitと書くことで実行できる。

 

◯文字列

 プログラミングの中で文字を扱うための値。生成するには、文字をダブルクォーテーションまたはシングルクォーテーションで囲む。また、文字列同士を+(プラス)でつなぐことで、連結することができる。

 

◯メソッド

 プログラミングにおける何らかの処理をまとめたもの。

 

 ❶ lengthメソッド(レングス)

  文字列の文字数を教えてくれる。使用方法としては、『文字列.length』と実行することで、指定した文字列の文字数が表示される。

 

◯数値

 数を表現する値。※クォーテーションを付けないこと。

 

演算子

 プログラミングにおける値の計算や比較などに使用する記号のこと。(+ー<>など)

 

 ⑴代数演算子(+-:/%)

  演算子の中でも計算を行うもの。※%に関しては、剰余と行って余りの数を求めることができる。

 

 ❷ to_sメソッド

  演算子によって計算・比較された数値を文字列に変換してくれる。使う理由として、文字列と数値の連結はできないので、数値を文字列に変換することで連結することができる。

 

 ❸ to_iメソッド

  文字列を数値に変換してくれるメソッド。

 

◯式

 文字列や数値の他に、メソッドの呼び出し、変数、演算子式などを含む総称。

 

 ⑴ 式展開

  文字列の中に式を入れることができる機能。書き方は文字列中で『#{式}』とすることで使える。※文字列がシングルクォーテーションだと式展開されない。

 

〜値に名前をつけて使おう〜

◯変数

 値を入れる箱のようなもの。この箱には名前をつけることができ、どんな値が入っているのかを簡単に識別できるようになります。この名前を変数名と言う。

 メリット ・値の意味がわかりやすい。

      ・値を再利用しやすい。

 

 ⑴変数の宣言

  変数を作ること。

 

 ⑵変数の定義

  宣言した変数にどのような値を入れるのか記述すること。 

 

 ⑶代入

  右側の値を左の変数に代入すると言う意味を持つ。

 

 ⑷再代入

  一度代入した変数に、別の値を再び代入することができる。

 

 ⑸自己代入演算子

  自分自身に代入すること。

  例)number = number + 1 → number += 1

 

 ⑹変数の命令規則

  1 変数の中身が何かわかる

  2 小文字で始める

  3 _(アンダーバー)で始めない

  4 数字で始めない(エラー)

  5 日本語を使わない

  6 スペースを含めない(エラー)

  7 予約語を使用しない(エラー)

 

〜ターミナル〜

◯putsメソッド

 ターミナルに値を出力するメソッド。

 

◯petsメソッド

 ターミナルに値の入力機能を起動するメソッド。※勝手に改行される。

 

◯chompメソッド

 文字列の末尾に存在する改行を取り除いた文字列を返してくれる。

 

◯バックスラッシュ記法

 \(バックスラッシュ)から始まる文字の記法のこと(option + ¥)※適用されるのは文字を”で囲んだ時のみ。

 記法 ⑴ \n   改行

    ⑵ \t   タブ

    ⑶ \b   バックスペース

    ⑷ \\   バックスラッシュ

 

〜情報を順番で管理して1つにまとめよう〜

 ◯配列

  1つの変数で複数の値を持つことのできる値。生成方法は、『変数 = []』となります。

 

 ◯要素

  配列の中のデータ。要素は順番を持っていて、配列へ入れた順に自動的に順番が割り振られます。 

 

  ◯配列演算子(<<)

  配列に対してさまざまな処理を行う演算子。追加方法は、配列に続いて<<を書くことで、追加したい要素を後ろに書くことができる。

 

 ◯添字

  配列の各要素に割り振られた番号のこと。一番左の要素からから始まり『0』からのスタートとなる。 

 

 ◯配列の変更方法

  『配列[添字] = 値』となる。

 

 ◯lengthメソッド

  配列の要素数を知ることができる。

 

〜複数の値に名前をつけて1つにまとめよう〜

 ◯ハッシュ

  『データ(”バリュー”と呼ぶ)』とそれに対応する『名前(”キー”と呼ぶ)』のセットを要素として持つ値です。

 

  →複数のデータを持つことのできる値という点では、配列と同じだがハッシュは順番ではなく、キーで管理する。このようなキーとバリューで管理する方法を『キーバリューストア』と呼ぶ。キーには、文字列・数値共に使用できるが、多くの場合は、『シンボル』という値を使う。

 

 生成方法 ハッシュの宣言

   『 変数 =  {キー1 => バリュー1, キー2 => バリュー2} 』

 

 ◯シンボル

  見た目は文字列のようだが、実際の中身は数値になっている値。宣言方法は文字列の先頭に『コロン:』をつける。

  メリット ⑴処理速度を早くすることができる。

       ⑵文字列としての役割も果たせる。

 

  2種類のシンボルの使用方法

       ⑴ hash = { :name => "Taro"}

       ⑵ hash = { name: "Taro"}  ← よく使用される。

 

 ◯ハッシュの値の追加方法

  『 ハッシュ[追加するキー] = 値 』

 

 ◯ハッシュの値の取得方法

  『 ハッシュ[取得したいキー] 』

 

 ◯ハッシュの値の変更方法

  『 ハッシュ[変更したいキー] = 値 』

 

〜条件分岐処理をしよう〜

 ◯比較演算子

  値同士を比較したい時に使用します。

 

 ◯true,false

  式が真(true)か偽(false)かを扱う真偽値。

 

 ◯論理演算子(!)

  式の真偽の確認や、真偽値に対しての演算を行うことができる演算子

  

irb(main):001:0> 2 * 3 != 6
=> false
# 2 × 3 は10ではないか?
irb(main):002:0> 2 * 3 != 10
=> true

  

 ◯条件分岐処理

  条件を満たしているかどうかで実行内容を分岐する処理。

 

 ◯If文

  Rubyの条件分岐で使う文法。

if 条件式
  処理
end

 

 ◯else

  条件式が偽のときに処理を行う時に使う。

if 条件式
  # 条件式が真(true)のときに実行する処理
else
  # 条件式が偽(false)のときに実行する処理
end

 

 ◯elseif

  elseのように条件式がfalseだったときの処理を記述するものですが、条件を満たさなかった場合に対して、ifのように条件式を追加できます。

if 条件式1
  # 条件式1が真(true)のときに実行する処理
elsif 条件式2
  # 条件式1が偽(false)のとき、かつ
  # 条件式2が真(true)のときに実行する処理
else
  # 条件式1と条件式2がどちらとも偽(false)のときに実行する処理
end

 

〜繰り返し処理をしよう〜

 ◯繰り返し処理

  同じ内容を繰り返し処理のこと。ループ処理とも呼ばれる。

 

 ◯timesメソッド

  数値の値によって、その値の回数分だけ処理を繰り返す。

数値.times do
  # 繰り返す処理
end

  また、timesメソッドは以下のように、メソッド野中だけで使用できる変数を||で囲むブロックを使うことができる。

 

 ◯eachメソッド

  要素ひとつひとつに対して、繰り返し処理ができる。

配列.each do |item|
  # 処理
end

 

〜処理に名前をつけて使おう〜

 ◯メソッドの定義

  元々あるメソッドだけでなく、自分で定義することもできる。

def メソッド名
  # 実行する処理
end

 

 ◯メソッドの実行

# メソッドの定義
def say_hello
  puts "Hello World"
end

# メソッドの実行
say_hello

 

 ◯戻り値

 メソッドから呼び出した場所に渡される値のこと。メソッドが処理されたあとの最終的な値のこと。 

def sample
  "1"
  "2"
  "3"         # 最後の行が戻り値になる
end

puts sample   # => 3

 

 ◯return文

  メソッド内にreturn 〇〇と記述することで、〇〇の部分が戻り値になる。

def sample
  "1"
  "2"
  "3"

  return "4"  # ここで処理は終わり

  "5"         # 呼ばれない
  "6"         # 呼ばれない
end

puts sample   # => 4

 

 ◯スコープ

  定義した変数が使える範囲のこと。

  メソッド内で定義した変数はメソッド外で使えない。またメソッド外で定義した変数はメソッド内で使えない。

 

 ◯引数

  メソッドなどに渡すことのできる値。外にある変数の値をメソッドの中で扱うことができる。

  メソッド定義時に仮引数と、メソッドを呼ぶ際に実引数を記載することで使用できる。

def sample(number)  # ②仮引数numberで、実引数「3」の値を受け取る
  puts number * number  # ③「3」が代入されたnumberを使って「3 * 3」を行い出力する
end

sample(3)  # ①数値「3」を実引数にしてメソッドを呼び出し

 

〜データの元となる設計図を作ろう〜

 ◯クラス

  値の元となるもの。値の共通のルールを定義する。ここで決めるルールは、共通の属性と処理(メソッド)である。クラス名は必ず大文字から始める。

class クラス名
  # 変数やメソッドの定義
end

 

 ◯インスタンス

  クラスを元にして作られるデータのこと。

 

 ◯インスタンスの生成方法

  クラスは、定義したくてもnewという特別なメソッドをはじめから持っている。newメソッドを使用してインスタンスを生成する。 

# インスタンスを生成し変数で扱う
変数名 = クラス名.new