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マスターするまで

Rubyではオブジェクト指向を用いられている

さてオブジェクト指向とは何か?大抵ここでオブジェクト指向を調べて分からなくなる。

しかし最近知ったがその前に学ぶべきことがあるらしい。

DRYとGRASPパターンというものらしい。

DRYとは?

Don't repeat yourself (DRY) あるいはSingle Source of truth(英)は、特にコンピューティングの領域で、重複を防ぐ考え方である。 この哲学は、情報の重複は変更の困難さを増大し透明性を減少させ、不一致を生じる可能性につながるため、重複するべきでないことを強調する。

Wiki参照

以下がわかりやすかった。

qiita.com

GRASPパターンとは?

GRASP、General Responsibility Assignment Software Pattern あるいは ~Principle とは、オブジェクト指向設計において用いられる、クラスやオブジェクトに責務を割り当てる方針を導くパターンや原則である。 Craig Larmanが著書「実践UML」で示した。

Wiki参照

対話方式でスクリプトを実行するツールを導入〜Rubyマスターするまで

irbという。

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