Rubyの学習(1日目)Linuxの学習(6日目)とプロになるためのweb技術入門(4日目)
Javacriptのprogateでの学習が終わったので、今日からRubyの学習に入る。RailsはRubyのフレームワークなので、Rubyの深い理解が重要になると思って頑張ろうと思う。
Rubyとは
Rubyとはwebアプリケーションのシステムを作るための言語
Rubyの基本と文字列
Rubyの文字列はjavascriptと同じように""z(ダブルクオーテーション)または``(シングルクオーテーション)で囲う。
出力するなら「puts "文字列"」となる
Rubyのコメント
行の先頭に#をつけるとコメントになる。
計算
putsでは計算もできる。""で囲うと文字列になる。これはjavascriptと同じ
文字列の計算
こちらもjavascriptと同様に文字列の計算ができる。
変数の定義
こちらもjavascriptと同じニュアンス
変数の命名
Rubyの命名にはいくつかのルールがある。特に2語以上繋げるときは必ず_アンダーバーをつけるようにする。
定数の更新
上から下の順に更新されていく。これもjavascriptと同じ。
変数の自分自身の更新
変数自身に情報を注ぎ足して更新することもできる。
計算の省略例
これもJavaScriptと同じ。先に計算の情報( +や-)を書いてから=で結ぶ。
変数展開 変数を文字に含める
JavaScriptに同じような機能があるが、Rubyでは$の代わりに#{}である、``シングルクオーテーションではなく""ダブルクオーテーションでなければ反映されない(シングルクオーテーションでは文字列として反映されてしまう)。JavaScriptとは逆である・
Rubyのif文
非常にJavaScriptと文法が似ている。括弧ではなくendという言葉で終わらせるため、より直感的か。なお条件に合わない場合はエラー(一切出力されない)になる。
Rubyの真偽値
if文なしで条件式のみで出力すると、true, falseの真偽値が出てくる。
これもJavaScriptと似ている。
真偽値があるならば当然、比較演算子も登場する。
これもまたJavaScriptと似通っている。
比較演算子を使って等しさを求める
a == bは「aとbが等しければtrueになり、等しくなければfalse」となり、a != bはその逆で、「aとb等しくなければtrue、等しければfalse」というニュアンスになる。
Rubyのelse
RubyのelseはJavaScriptと同じく「条件が成り立たなかったら」という処理ができる。
条件式などはなく処理だけなのも同様。
ifにelseを組み合わせると「もし〇〇なら●●を行う、そうでなければ■■を行う」という処理ができるようになる。if文の条件がfalseの場合、elseの処理が実行されます。
elseの実用例
elseを使うことでif文のみでは2パターン用意して冗長だったものが、わかりやすくシンプルになっている。こういう複数の構造があるときはインデントをしっかりすること。
elsif 〜条件を追加する〜
elsifには「if」の文字が含まれている通り、if式のように条件式が必要になる。elsifを使えば、もしaだったらa'を行う(if部分)、aではなくbだったらb'を行う(elsif部分)、aでもbでもなければc'を行う(else部分)、というような処理である。
elsifの注意点
elsifは複数の条件に一致したとしても実行されるのは最初の条件のみなので、条件の順番を間違えると不適切な分岐になってしまう。例えば、左の図は「score > 60」の条件を最初に書いていることで、scoreが98にも関わらず「まずまずです」と出力されてしまっている。
「かつ」を表す論理演算子 &&
「かつ」は「&&」で表す。「条件1 && 条件2」は「条件1かつ条件2」という意味で、複数の条件がすべてtrueならtrueになる。これはコンピュータの論理和であるandと同じである。
「または」を表す論理演算子 ||
「または」は「||」で表し、条件1 || 条件2」は「条件1または条件2」という意味になる。この場合は、複数の条件のうち1つでもtrueならtrueになる。これはコンピュータの論理和であるorと同じである
&&の具体例
ディレクトリ関連について学習
なるほどと思ったところ
ホームディレクトリ:シェルを立ち上げた直後の /home/ユーザー名 がホームディレクトリと呼ばれるもので、ユーザーが自由にファイルを置くことができる。/homeはホームディレクトリではなくホームディレクトリを入れるディレクトリである。
unixは複数の人が一台のコンピュータを使う想定がされている。つまり、「ユーザーにとってのホームディレクトリが /home/ユーザー名 」なのである
mvファイルはファイル名の変更と、ファイルの移動の二つの役割を持つ。
これはケースバイケースできまる。例えばカレントディレクトリにaとbのファイルがあるときに、$ mv a b としても、bのファイルが既にあるのだから、ファイルの移動だろう、とLinuxが判断するのである。
とは言えまぎらわしいので、$ mv a b/ とするとBディレクトリに移動となり明確化する。
web