なんだかGoodVibes

日々の勉強メモです。

【Ruby】[超入門] 四則演算の演算子とメソッド

こんにちは。
本日はRubyメモです。

演算子を使って四則演算

puts "1 + 1 => #{1 + 1}"
# 1 + 1 => 2

puts "5 - 1 => #{5 - 1}"
# 5 - 1 => 4

puts "2 * 3 => #{2 * 3}"
# 2 * 3 => 6

puts "10 / 2 => #{10 / 2}"
# 10 / 2 => 5


メソッドを使って四則演算

実は、メソッドを使用して四則演算が可能です。
演算子を使用した場合も、内部的にはメソッドが呼び出されています。

puts "1.+(1) => #{1.+(1)}"
# 1.+(1) => 2

puts "5.-(1) => #{5.-(1)}"
# 5.-(1) => 4

puts "2.*(3) => #{2.*(3)}"
# 2.*(3) => 6

puts "10./(2) => #{10./(2)}"
# 10./(2) => 5



以上です。

【Ruby】[超入門] オブジェクトが属するクラスを調べる

こんにちは。
本日はRubyメモです。

classメソッドを使ってクラスを調べる

Rubyでは、すべての値がオブジェクトです。
調べたいオブジェクトのclassメソッドを使用することで
そのオブジェクトが属するクラスを調べることができます。

puts "1.class => #{1.class}"
# 1.class => Integer

puts "(1.5).class => #{(1.5).class}"
# (1.5).class => Float

puts """hoge"".class => #{"hoge".class}"
# hoge.class => String

puts "[1, 2, 3].class => #{[1, 2, 3].class}"
# [1, 2, 3].class => Array

puts "true.class => #{true.class}"
# true.class => TrueClass

puts "true.class => #{false.class}"
# true.class => FalseClass

puts "nil.class => #{nil.class}"
# nil.class => NilClass

クラスに対して呼ぶことも可能です。

puts "Integer.class => #{Integer.class}"
# Integer.class => Class



以上です。

【Ruby】[超入門] 進数の扱い方と変換

こんにちは。 本日はRubyメモです。

進数の表現

2進数、8進数、10進数、16進数を表現する際は
数値の先頭に接頭辞をつけます。

それぞれの接頭辞は以下です。

2進数 8進数 10進数 16進数
0b 0o
0
0d 0x
# 2進数
puts "0b0011 => #{0b0011}"
# 0b0011 => 3

# 8進数
puts "0o0011 => #{0o0011}"
# 0o0011 => 9
puts "00011 => #{00011}"
# 00011 => 9

# 10進数
puts "0d0011 => #{0d0011}"
# 0d0011 => 11

# 16進数
puts "0x0011 => #{0x0011}"
# 0x0011 => 17

10進数から他の進数に変換する

Integer#to_sを使用して変換が可能です。
指定できるのは、2〜36までの基数です。
戻り値はString オブジェクトです。

puts "20.to_s(2) => #{20.to_s(2)}"
# 20.to_s(2) => 10100

puts "20.to_s(8) => #{20.to_s(8)}"
# 20.to_s(8) => 24

puts "20.to_s(16) => #{20.to_s(16)}"
# 20.to_s(16) => 14

文字列から10進数へ変換する

String#to_iを使用して変換が可能です。
指定できるのは、2〜36までの基数です。
戻り値はInteger オブジェクトです。

puts "0b0011.to_i(2) => #{"0b0011".to_i(2)}"
# 0b0011.to_i(2) => 3

puts "0o0011.to_i(8) => #{"0o0011".to_i(8)}"
# 0o0011.to_i(8) => 9

puts "0d0011.to_i(10) => #{"0d0011".to_i(10)}"
# 0d0011.to_i(10) => 11

puts "0x0011.to_i(16) => #{"0x0011".to_i(16)}"
# 0x0011.to_i(16) => 17



以上です。