Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめてのRuby 第1章 / Ruby Practice 01
Search
muttan
October 18, 2016
Programming
0
270
はじめてのRuby 第1章 / Ruby Practice 01
はじめてのRuby(第五版)勉強会第一回用スライド
muttan
October 18, 2016
Tweet
Share
More Decks by muttan
See All by muttan
さわやか待ち時間LINE botを作った話 / Sawayaka LINE bot
bath_poo_
0
100
コンテナ開発入門 1回目/Introduction to Container Development 1
bath_poo_
0
130
ISUCONってなんだ / What is ISUCON
bath_poo_
0
310
Web技術の基本 8回目 / Introduction to Web technologies 8th class
bath_poo_
0
160
Web技術の基本 7回目 / Introduction to Web technologies 7th class
bath_poo_
0
140
Web技術の基本 6回目 / Introduction to Web technologies 6th class
bath_poo_
1
230
Web技術の基本 5回目 / Introduction to Web technologies 5th class
bath_poo_
0
110
Web技術の基本 4回目 / Introduction to Web technologies 4th class
bath_poo_
0
190
Web技術の基本 3回目 / Introduction to Web technologies 3rd class
bath_poo_
0
230
Other Decks in Programming
See All in Programming
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
120
みんなでプロポーザルを書いてみた
yuriko1211
0
260
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
340
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
180
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
受け取る人から提供する人になるということ
little_rubyist
0
230
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
230
CSC509 Lecture 12
javiergs
PRO
0
160
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
620
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
480
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
Featured
See All Featured
Scaling GitHub
holman
458
140k
Documentation Writing (for coders)
carmenintech
65
4.4k
Ruby is Unlike a Banana
tanoku
97
11k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
The Cult of Friendly URLs
andyhume
78
6k
Code Review Best Practice
trishagee
64
17k
Why Our Code Smells
bkeepers
PRO
334
57k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
A better future with KSS
kneath
238
17k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Transcript
はじめてのRuby 第1章
参考書 たのしいRuby 第5版(SBクリエイティブ) \2,808(Amazon) 大事な(と思われる) 部分を抜粋してやります.
Rubyのバージョン Rubyは2016.10.5現在最新の2.3.1を利用し ます. ダウンロードはこちらから https://www.ruby-lang.org/ja/downloads/ 最新のRubyの情報は、公式HPをチェック https://www.ruby-lang.org/ja/
Rubyの特徴
Rubyの特徴 オブジェクト指向言語である. ソフトウェア工学の前にやるべきだった. スクリプト言語である. Cと違ってコンパイルを挟まずに実行可能. マルチプラットフォームな言語である. OS
XでもLinux, FreeBSDでもWindowsで も実行可能である.
第1章 はじめてのRuby
1.1 Rubyを実行する. rubyコマンドを利用する. hoge.rbというファイルを作成し、 として実行する。 irbを利用する. 対話的に実行する. irbは(Interactive
Rubyの略) $ruby hoge.rb
(Rubyコマンドを利用して) お約束のアレから スタート
helloruby.rb print(“Hello, Ruby.\n”) $ruby helloruby.rb 上記1文を記述し、以下のように実行 p4 helloruby.rbを実際に実行
実行
irbコマンドで実行 $irb irb(main):xxx> print(“Hello, Ruby.\n”) Hello, Ruby. =>nil irb(main):xxx> Hello,
Ruby : 出力 nil : print文の戻り値
1.3 文字列 改行文字 \nは改行を表す. エスケープシーケンスを表示する Hello, “Ruby” のような文字列を出力するときは、
のようにする必要がある. print("Hello, \"Ruby\".\n")
エスケープシーケンスを表示 式 表示される文字列 print("Hello, \"Ruby\".\n") Hello, “Ruby”. print("Hello, \\nRuby.\n") Hello,
\nRuby. print("Hello, \'Ruby\'.") Hello, ‘Ruby’. print("Hello, \\Ruby\\.") Hello, \Ruby\.
1.3.2 “ ”と’ ’の違い “ “の挙動は先ほど説明した通り. ‘ ‘(シングルクォーテーション)で文字列を
囲んだとき、エスケープシーケンス(\n, \t 等々)は解釈されず、そのまま表示される. は、 と表示される. print(‘Hello, \nRuby\n.\n’) Hello, \nRuby\n.\n
1.4 メソッドの呼び出し 括弧は省略可能 print(“d(^_^o)”)とprint “d(^_^o)” は同じ. カンマで並べて表示. と書くことで、“しまもん”と表示される.
print “し“, ”ま“, ”も”, “ん”
1.6 pメソッド デバッグに便利なメソッド puts “100”とputs 100の出力結果は変わら ないが、p “100”とp 100では異なる(文字
列と整数)ことがわかる。 式 結果 puts “100” 100 puts 100 100 p “100” “100” p 100 100 p13 puts_and_p.rbを実際に実行
実行
1.9 変数 変数名 = オブジェクトという形で書く. 変数名はわかりやすく shimamon =
"d(^_^o)" n = 10 p20 area_volume.rbを実際に実行
実行
1.9.1 変数の展開 P20 area_volume.rbにおいて、areaという 変数を出力したい場合、 と書くことができるが、 とすることで、文字列内に変数の値を展開す ることができる. print
“表面積=“, area, "\n" print “表面積=#{area}\n“
1.9.1 変数の展開 x = 10 y = 20 z =
30 area = (x * y + y * z + z * x) * 2 volume = x * y * z print “表面積=#{area}\n" print “体積=#{volume}\n" P20 area_volume2.rb
1.10 コメントアウト 1行コメントアウトするときは、#を先頭に 記述する. コメントが複数行にわたる場合は、 ”=begin”と”=end”で囲む必要がある.
1.10 コメントアウト =begin foo bar コメントブロック =end x = 10
y = 20 z = 30 # 表面積 area = (x * y + y * z + z * x) * 2 # 体積 volume = x * y * z print “表面積=#{area}\n" print “体積=#{volume}\n"
1.12 条件判断(if…then…end) 条件分岐させるために使用する. thenは省略可能です. if condition then expression
end p25 greater_smaller.rbを実際に実行
実行
1.12 条件判断(if…then…end) elseもあります if condition then expression else expression
end p26 greater_smaller_else.rbを実際に実行
実行
1.13 繰り返し(while文) Cと同じ構文です. while condition expression end p26 例を実際に実行
実行
1.13 繰り返し(timesメソッド) 所謂イテレータと言われるもの. あとで詳しくやるのでこんなものがあるぐら いでOK. obj.times do expression
end