0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【WIP】Ruby Sliver学習めも1

Last updated at Posted at 2019-12-12

Qiita初心者が作成中です!

#文法1
###コメント

  • 単行コメント
単行コメント
# 単行コメント
# 行末まですべてコメント
  • 複数行コメント
複数行コメント
=begin
複数行コメント
「=begin」と「=end」は行頭に記述する必要がある
=end
  • 文末コメント
文末コメント
__END__
これ以降はコメント

###予約語

予約語
__FILE____LINE__BEGINENDalias
andbeginbreakcaseclass
defdefined?doelseelsif
endensurefalseforif
inmodulenextnilnot
orredorescueretryreturn
selfsuperthentrueindef
unlessuntilwhenwhileyield

###リテラル(数値、真偽値、文字列、文字、配列、ハッシュ等)
#####数値

  • 2進数 → 0b【数値】
2進数
irb(main):001:0> 0b1
=> 1
irb(main):002:0> 0b2
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):2: numeric literal without digits)
irb(main):003:0> 0b10
=> 2
irb(main):004:0> 0b11
=> 3
irb(main):005:0> 0b12
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):5: syntax error, unexpected tINTEGER, expecting end-of-input)
  • 8進数 → 0【数値】もしくは0o【数値】
8進数
irb(main):001:0> 01
=> 1
irb(main):002:0> 07
=> 7
irb(main):003:0> 08
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):3: Invalid octal digit)
irb(main):004:0> 010
=> 8
irb(main):005:0> 011
=> 9
irb(main):006:0> 017
=> 15
irb(main):007:0> 018
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):7: Invalid octal digit)
irb(main):008:0>
irb(main):009:0> 0o1
=> 1
irb(main):010:0> 0o7
=> 7
irb(main):011:0> 0o8
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):11: Invalid octal digit)
irb(main):012:0> 0o10
=> 8
irb(main):013:0> 0o17
=> 15
irb(main):014:0> 0o18
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):14: Invalid octal digit)
  • 10進数 → 【数値】 もしくは 0d【数値】
10進数
irb(main):001:0> 1
=> 1
irb(main):002:0> 10
=> 10
irb(main):003:0> 11
=> 11
irb(main):004:0> 0d1
=> 1
irb(main):005:0> 0d10
=> 10
irb(main):006:0> 0d11
=> 11
  • 16進数 → 0x【数値】
16進数
irb(main):001:0> 0x1
=> 1
irb(main):002:0> 0x9
=> 9
irb(main):003:0> 0xA
=> 10
irb(main):004:0> 0xF
=> 15
irb(main):005:0> 0xG
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):5: numeric literal without digits)
irb(main):006:0> 0x10
=> 16
irb(main):007:0> 0x1A
=> 26
irb(main):008:0> 0x1F
=> 31
irb(main):009:0> 0x1G
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):9: syntax error, unexpected tCONSTANT, expecting end-of-input)
  • 浮動小数点数 → e【数値】

 10の【数値】乗。

浮動小数点数
irb(main):001:0> 1e1
=> 10.0
irb(main):002:0> 1e2
=> 100.0
irb(main):003:0> 1e3
=> 1000.0
irb(main):004:0> 1e-1
=> 0.1
irb(main):005:0> 1e-2
=> 0.01
irb(main):006:0> 1e-3
=> 0.001
  • 複素数 → 【数値】i
  • 虚数部が有理数の複素数 → 【数値】ri
浮動小数点数
irb(main):001:0> 5i
=> (0+5i)
irb(main):002:0> 7.0i
=> (0+7.0i)
irb(main):003:0> 1.8i
=> (0+1.8i)
irb(main):004:0> 5ri
=> (0+(5/1)*i)
irb(main):005:0> 7.0ri
=> (0+(7/1)*i)
irb(main):006:0> 1.8ri
=> (0+(9/5)*i)

 10の【数値】乗。

浮動小数点数
irb(main):001:0> 1e1
=> 10.0
irb(main):002:0> 1e2
=> 100.0
irb(main):003:0> 1e3
=> 1000.0
irb(main):004:0> 1e-1
=> 0.1
irb(main):005:0> 1e-2
=> 0.01
irb(main):006:0> 1e-3
=> 0.001

###文字列リテラル

  • ''(シングルクォーテーション) → 囲われた文字を文字列として扱う。式展開不可。
  • ""(ダブルクォーテーション) → 囲われた文字を文字列として扱う。式展開可。
文字列リテラル
irb(main):001:0> puts 'aaa #{1+1}'
aaa #{1+1}
=> nil
irb(main):002:0> puts "aaa #{1+1}"
aaa 2
=> nil

###配列リテラル
配列の要素に異なるリテラルを使用可。
「’’」で囲っても「""」扱いになる?

配列リテラル
irb(main):001:0> a=[1,'a',234,"bcd",]
=> [1, "a", 234, "bcd"]
irb(main):002:0> b=[,2,3]
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):2: syntax error, unexpected ',', expecting ']')
b=[,2,3]
   ^
irb(main):003:0> b=[1,,3]
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):3: syntax error, unexpected ',', expecting ']')
b=[1,,3]
     ^

###ハッシュリテラル
ハッシュ内のキーと値は「=>」や「:」でつなぐことができる。
「:」は文字列リテラルのみ?

ハッシュリテラル
irb(main):001:0> {"abc"=>123,"de"=>45,678=>9}
=> {"abc"=>123, "de"=>45, 678=>9}
irb(main):002:0> {"abc":123,'de':45,"678":9}
=> {:abc=>123, :de=>45, :"678"=>9}
irb(main):003:0> {"abc":123,'de':45,678:9}
Traceback (most recent call last):
        1: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
SyntaxError ((irb):3: syntax error, unexpected ':', expecting =>)
{"abc":123,'de':45,678:9}

###正規表現リテラル
正規表現 → 「/」で囲まれた文字列。
正規表現に対するオプション → 終りの「/」の直後の文字。

正規表現リテラル
/Ruby/i
/my name is #{myname}/o
  • 正規表現に対するオプション

 i:正規表現はマッチ時に大文字小文字の区別を行わない。
 o:一番最初に正規表現の評価が行われた時に一度だけ式展開を行う。
 x:正規表現中の空白(改行も含む)を無視する。
   また、バックスラッシュでエスケープしない。
   「#」から改行までをコメントとみなして無視する(ただし、コメント中に「/」を含めると構文解析に失敗するので注意)

正規表現リテラル オプションx
  /foo        # コメント
  bar/x

→これは /foobar/ と同じ。
 空白を含めるには「\」のようにエスケープする。

  m:複数行モード。正規表現 "." が改行にもマッチするようになる。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?