![見出し画像](https://assets.st-note.com/production/uploads/images/42201437/rectangle_large_type_2_f483a89f57cdedb2c23c90c445533e08.jpg?width=1200)
【RUBY】初級編CP2
rubyのアウトプット★
《ハッシュ》
ハッシュはキーと値のペアでまとめられる。どちらのコードでもOK。putsではなく、Pとするとシンボルと文字列がしっかり区別される。
fruits = {
'apple' => 'リンゴ',
'banana' => 'バナナ',
'orange' => 'オレンジ',
}
fruits = {
apple: 'リンゴ',
banana: 'バナナ',
orange: 'オレンジ',
}
fruits = {
apple: 'リンゴ',
banana: 'バナナ',
orange: 'オレンジ',
}
fruits.each do |key, value|
p key
p value
end
putsではなく、Pとするシンボルと文字列が区別される。
:apple
"リンゴ"
:banana
"バナナ"
:orange
"オレンジ"
《シンボル》
概要
シンボルは文字列(string)と同じようで使い方が違う。データの通し番号をこちら側が設定するような用途。文字列リテラルのようにクォーテーションで囲む必要はない。
puts "Tarou".object_id
puts "Tarou".object_id
puts :Tarou.object_id
puts :Tarou.object_id
#の時、実行結果は以下の通り。
14227120
14227060
1029668
1029668
rubyの全てのデータは通し番号「オブジェクトID」を持っている。上二つは変数(リテラル).object_idで書いており、それぞれのオブジェクトIDを持っている。下二つはシンボルでコーディングしてあるのでIDが同じ。全く同じ名称のシンボルは常に同じオブジェクトIDとなる。
《理論値》
trueとfalseを理論値と呼ぶ。
《nil》
空(から)や値がないことを示す。
《演算子》
代入演算子…代入演算(=)を用いて行う。
代数演算子(四則計算と剰余)…代数演算子は四則計算と剰余(あまり)の演算を行う演算子のこと。
+ (a + b)足し算
ー (a - b)引き算
* (a * b)掛け算
/ (a / b)割り算
% (a % b)余り算
《文字列の足し算・数値と文字列の足し算》
str = 'あいう’ + 'えお'→strには’あいうえお’が代入される。
数値を文字列に変換するには、「数値.to_s」とする。sはstringsのs。
num1 = 1 + 2 # 3
num2 = 1 - 2 # -1
num3 = 2 * 5 # 10
num4 = 6 / 3 # 2
num5 = 5 % 2 # 1 (割った後の余り)
str = '数値は'
num = 123
puts str + num.to_s # 数値は123 と出力される
《比較演算子》
比較演算子…2つの値を比較し、その結果を理論値(trueまたはfalse)で返す。
a == b 等しい場合はtrue、等しくない場合はfalseを返す。
a != b 等しくない場合(true)、等しい場合(false)
a < b、a>b 大きい場合、小さい場合
a <= b、a>=b 大きいか等しい場合、小さいか等しい場合
result = 1 < 2 # true
puts result
result = 1 == 2 # false
puts result
《論理演算子》
「条件A、且つ、条件B」、「条件A、または、条件B」など、上記で学んだ条件式を組み合わせたい場合には、論理演算子を使用。
条件A && 条件B…条件Aと条件Bがどちらもtrueならばtrueを返す。
条件A || 条件B…条件Aと条件Bのどちらかがtrueならばtrueを返す。
!条件A…条件Aがfalseならtrueを返す。
(1 == 1) && (2 == 2) # true
(1 == 1) && (1 == 2) # false
(1 == 2) || (2 == 2) # true
(1 == 2) || (3 == 2) # false
!(1 == 2) # true
! false # true
#&&はand、||はor、!はnotと書き換えできる。
(1 == 1) and (2 == 2) # true
(1 == 1) and (1 == 2) # false
(1 == 2) or (2 == 2) # true
(1 == 2) or (3 == 2) # false
not(1 == 2) # true
not false # tru