今日のお勉強。180203-Rubyの基本

Rubyの基本。180203

Ruby入門

「数値と四則計算」まで学習しました。

 

ビット演算子とシフト演算子がいまいちピンとこなくて、2進数のことをずっと考えてました。 

 

●●進数にするといくつ。と、変換するの大変なので、

2進数、8進数、10進数、16進数相互変換ツール

という変換ツールを使いながら考えてました。

 

11 << 1 = 22

 

2進数に変換すると、

11 -----> 1011

1 -----> 1

-----------------

1011に1けた左に桁を動かすと、

10110。つまり22。

 

11 >> 1 = 5

11 -----> 1011

1 -----> 1

-----------------

1011に1けた右に動かす(一番右の1桁消す)

101。つまり5。

 

11 << 2 = 44

11 -----> 1011

2 -----> 10

-----------------

1011に2けた左に桁を動かすと、

101100。つまり44。

 

11 >> 2 = 2

11 -----> 1011

2 -----> 10

-----------------

1011に2けた右に動かす(一番右の2桁消す)

10。つまり2。

 

 

「整数と浮動小数点数の演算結果」 

整数と浮動小数点数の演算結果 - 数値と四則演算 - Ruby入門

 

のサンプルプログラムをやってみた結果が、こうです。

 

f:id:nashiko_chan:20180204012955p:plain

 

5.4 x 3 = 16.200000000000003

5.4 + 3.2 = 8.600000000000001

などなど、あれれ〜?と思って調べてみたところ、

PHP - 言語別?計算誤差に関して(37652)|teratail

 

小数点以下の数字って、パソコンでは、厳密に細かい数字になってるとのことで、上記の結果が出たのかと思われます。

 

 

理由が見えてくると、なるほど〜!と思うことばかりですね

(^0^)/ 

 

 

今日のお勉強。180131-Rubyの基本

Rubyの基本。180131

Ruby入門 

を見ながらRubyを勉強してました。

「文字列」という単元の「バックスラッシュ記法によるエスケープ」までやりました。

 

 

バックスラッシュの出し方

optionキー + ¥キー でバックスラッシュが出てくる

\n

と書くと、改行される。

 

 

kconv

Ruby2.0の文字エンコーディングの簡単なまとめ。KconvとM17N - プログラマでありたい

なんか文字コード変換するためのもの。

でも、書いてる時に、tosjis と記述すると、実行する時に?マークばかりでて文字化けしてしまいました。

toutf8 と書くと出力されました。

 

 

$KCODE

最近のrubyだと、

print("KCODE=", $KCODE);

と書いてもエラーが出てしまい、出力されない。

調べてみると、以前のrubyはそう書いていたらしい。

最近だと、

print("ENCODING=", __ENCODING__);

と書くと出力されるそうです。

 

 

 

 

今日のお勉強。180128-Rubyの基本

Rubyの基本。180128

GitHub Styleguide を訳してみた(Ruby編) - Qiita

 

bbatsov/ruby-style-guide

 

を読んで、チェリー本を隣に置いてRubyのルールを勉強してました。

 

f:id:nashiko_chan:20180129001354j:plain

 

書き方のルールが思ったより多かったですが、少しずつ覚えていけたら、と思います。

 

 

よく出てくる単語

when

条件分岐。「●●の時は...」

 

then

if文 - 条件分岐 - Ruby入門

「もし〇〇だったらこうしてください。」

 

def

メソッドの定義と呼び出し - メソッド - Ruby入門

メゾッド定義。

メゾッドとはオブジェクト指向における、操作を定義したもの。らしい。

 

begin

例外処理らしい。

 

put

phpで言うprintやechoみたいな感じ。

 

?:

条件演算子

エクセル詳しくないけど、

result > 60 ? OK : NO

みたいな関数あったかもしれない。

 

@@

@@で始まるものはクラス変数。

 

 

予約語がまだあまり分からないので以下も参考にしました。

 

Ruby予約語をまとめてみた - enterprise java programmer

 

Ruby入門 - 制御構文

 

 

今日のお勉強。180125-Rubyの基本

Rubyの基本。180125

 ホワイの(感動的)Rubyガイド :: 7. 髭に願いをかけるとき

 7ページ目まで読み終わり、最後は目次ページにたどり着きました。

これなら見たいページすぐに見れますね。

ホワイの(感動的)Rubyガイド

 

 

つい最近では、おすすめ本を紹介していただいたので

チェリー本

と、

アジャイル時代のオブジェクト脳のつくり方 Rubyで学ぶ究極の基礎講座

の2冊を購入しました。

 

これも読んでRubyをより理解できるように頑張ります。

 

 

今日のお勉強。180122-Rubyの基本

Rubyの基本。180122

 ホワイの(感動的)Rubyガイド :: 6. ダウンタウン

6ページ目途中まで読みました。

 

思ったのですが、途中で入るイラストがかわいくて結構好きです。

 

 

Rubyの書き方や記号の記述の仕方に慣れてないため、少しずつ覚えていきたいと思います。

 

Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (Ruby 2.5.0)

 

Rubyで良く使われる記号Top50 - kotaniranoの日記

 

 

 

今日のお勉強。180119-Rubyの基本

Rubyの基本。180119

ホワイの(感動的)Rubyガイド :: 5. ルールを作るものと夢を生きるもの

 

上記サイトの5ページ目途中まで読み進めました。 

 

Rubyオブジェクト指向がメイン。

 

php学んでた時はオブジェクト指向をやったことがないので、戸惑いつつも早く扱えるようになりたいです。

 

オブジェクト指向の書き方がいまいちわかりづらいので、近いうちににRubyの書籍を買いに行かなきゃ。

 

クラスの定義とオブジェクトの作成 - クラスの概念 - Ruby入門

 

Ruby のクラスメソッド定義まとめ - Qiita

 

あと、ふと思い浮かんだのが、Rubyの記述の仕方って英語の文章に似てる気がしました。

 

 

 

 

今日のお勉強。180116-rbenvでRubyをインストール・Rubyの基本

rbenvでRubyをインストール。180116

 Rubyのバージョン切り替え

 $ rbenv local X.X.X

 

上記だと切り替えができますが、rbenv global X.X.X だとなぜか切り替えができませんでした。

rbenvでバージョンがうまく切り替わらなかった時にやったこと - Qiita

調べてやってみたものの、紐付けが間違ってる感じはしないのです…。

 

global local の違い

globalはシステム全体で使うバージョンの指定。

localはプロジェクトごとに使うバージョンの指定。 

 

versionversions の違い

$ rbenv version

現時点で作業を行ってるディレクトリで有効なRubyのバージョンが表示される。

 

$ rbenv versions

インストール済みのRubyのバージョンが全て表示。

引用:rbenv を利用した Ruby 環境の構築 | Developers.IO

 

 

もしかして、自分が作業してるところで global と記述しても、その階層で違うバージョン使ってたら、意味ないということなのだろうか…。

 

 

Rubyの基本

ホワイの(感動的)Rubyガイド :: 3. (漫画のキツネと学ぶ)短時間の(そして願わくは辛くない)Rubyコース

 

ここまで読み進めました!

 

Rubyの記述ルールの勉強になりました。

 

拡張子は「.rb」 

 

each文も、phpだと、

 

foreach ( なんか配列  ){

なんとかかんとか

}

 

と、おそらく3行ほど?記述しますが、

 

 Rubyだと、

 

['toast', 'cheese', 'wine'].each { |food| print food.capitalize }

 

引用:ホワイの(感動的)Rubyガイド :: 3. (漫画のキツネと学ぶ)短時間の(そして願わくは辛くない)Rubyコース

 

と、同じ出力するにしても、1行で記述が終わるのがすごいですね!