gets.to_iをするとto_iメソッドで改行無視して数値にしてくれる?
コード
a = gets.to_i;
p a
標準入力パターン①
1 2
標準出力パターン①
1(改行)
推測: 2がto_iで消されてる。改行は最後に
標準入力パターン②
1a3
標準出力パターン②
1(改行)
推測: a3がto_iで消されてる。
標準入力パターン③
a3
標準出力パターン③
0
Ruby getメソッド 返す値
例1
a = gets;
p a;
とした場合
標準入力を1を指定した場合は標準出力には
"1\n"と出力される。
aには"1\n"が入っている。
*p a;->puts aに変更したら1と出力されるが数値型でaに入っている訳ではなく""の中のものだけ表示する。よって1に改行(\n)されたものが出力されるので1だけ表示される。
つまりputs は""の中身だけ取ってくる。以上。
例2
a = gets;
b = gets;
とした場合
標準入力では
aは1行目を取ってきてくれる
bは2行目を取ってきてくれる
オブジェクト指向を学ぶために~Rubyマスターするまで
さてオブジェクト指向とは何か?大抵ここでオブジェクト指向を調べて分からなくなる。
しかし最近知ったがその前に学ぶべきことがあるらしい。
DRYとGRASPパターンというものらしい。
DRYとは?
Don't repeat yourself (DRY) あるいはSingle Source of truth(英)は、特にコンピューティングの領域で、重複を防ぐ考え方である。 この哲学は、情報の重複は変更の困難さを増大し透明性を減少させ、不一致を生じる可能性につながるため、重複するべきでないことを強調する。
Wiki参照
以下がわかりやすかった。
GRASPパターンとは?
GRASP、General Responsibility Assignment Software Pattern あるいは ~Principle とは、オブジェクト指向設計において用いられる、クラスやオブジェクトに責務を割り当てる方針を導くパターンや原則である。 Craig Larmanが著書「実践UML」で示した。
Wiki参照
対話方式でスクリプトを実行するツールを導入〜Rubyマスターするまで
irbという。
使い方?それはRubyをインストールしていれば誰でも使えるよーん。
困った例1
irb(main):001:0> a = 6
irb(main):002:0> print a + 1
7=> nil
??意味がわからん
aに6を代入してa+1をしたら7になるまではわかるが、、
そのあとの=>nilとは??
「irb null」でググったらすぐ出た。
print でもnullでもnilを返すようにしてるらしいよん。
ルール!以上!って感じで書いてある。
困った例2
irb(main):014:0> A = 1
irb(main):015:0> A +1
NoMethodError: undefined method `A' for main:Object
from (irb):15
from /Users/AKITO/.rbenv/versions/2.4.1/bin/irb:11:in `<main>'
ちゃんとA + 1のように+と1の間にスペースをいれてとのこと。
困った例3
irb(main):025:0> A = 101
=> 101
irb(main):026:0> A = 0
(irb):26: warning: already initialized constant A
(irb):24: warning: previous definition of A was here
=> 0
はすでに初期化してるよ!って注意受けてる。でも0いれてくれてるけどね。
そこが謎や!!
ルールか!
困った例4
irb(main):052:0> class a+b
irb(main):053:1> def plus(a,b)
irb(main):054:2> a+b
irb(main):055:2> end
irb(main):056:1> end
SyntaxError: (irb):52: class/module name must be CONSTANT
class a+b
^
(irb):52: syntax error, unexpected '+'
class a+b
クラスの名前に+をいれたら怒られた。
だめらしい
マイグレーションとは
データベースのバージョン管理を行うためのやり方?
データベースのテーブルやカラムへの変更の履歴を記録してくれる。
つまり他は履歴を残してくれない。
データベースのステータスや操作履歴をまとめて管理することができるすごいやつ。
MVCモデルとは〜Rubyマスターまでの道のり
M:モデル
V :ビュー
C:コントローラ
オブジェクト指向をさらに抽象化したものがMVCモデルらしい
まずオブジェクト指向を説明できないのだけどね。。。
ということで主な使われ方の例だけ頑張って書いて見る
(例)アマゾンで電子書籍を購入して読むまでの流れ
ユーザーが見るPCのブラウザ:View
⬇️購入ボタンクリック(Webサーバデータくれよ)
Webサーバ(注文管理:主に誰からこの商品の注文がきたなどの情報だけ持ってる。本の中身のデータは入っていない):Controller
⬇︎データをWebアプリケーションに渡す(この商品持ってきてー)
Webアプリケーション(わかったー探したら渡すねー)は実際データベースのどこにあるかの情報が入っているからデータベースから本の中のデータを持ってくる:Model
⬇︎Webサーバに本の中身を渡す
Webサーバデータを受け取る:Controller
⬇︎ブラウザにデータ渡す。
ブラウザで表示する:View