文系seの備忘録

Excelの改行でひたすらスペースを打っていた機械音痴の文系seが日々の備忘録を綴る。

改めて、Rubyとは何かをおさらいする

本日は5/6(金)。



社内は平和です。
人はあまりいませんが、何故か自分の周りはけっこう密集しています。

昼休み、やることないのでブログ書いてみます。



改めて、Rubyとは何かをおさらいします。




Rubyとは?
オブジェクト指向言語
javaではintやbooleanなど具体的な値を格納する基本データ型と参照型とに分かれるが、
Rubyは型定義がなく全て参照型となる。

インタプリター言語
javaみたいに事前コンパイル不要。



Rubyの特徴

・他のオブジェクト指向言語よりコードが少ない(気がする)


* java
クラス、mainメソッドが必要。


java hellowolrd

* ruby


ruby helloworld


- javaはクラス内でmainメソッドが実行されてるけど、rubyはクラス自体書いてない。
⇒ 実行時のクラス作成は不要(ref.http://www.rubylife.jp/ini/method/index1.html
- コマンドでrbファイル叩くから、最初に実行するとこはどこだ~?ってならないのでmainメソッド不要

・変数
- 動的型付け
変数の型がなく、どんな型も変数に入れられる。
- 変数の種類
変数の前にprivateとかつけるんじゃなくて、変数名で判断できるような名前にする
* ローカル変数
小文字アルファベット or _(アンダースコア)ではじめる
* グローバル変数
変数名の前に $ をつける
* クラス変数
変数名の前に @@ をつける
* インスタンス変数
変数名の前に @ をつける

 ・テーブル

  http://qiita.com/fakestarbaby/items/2e832be8aa5bc5e93e69#2-6

  * Hash.new で要素が空のハッシュオブジェクト作成

  * key, valueの記述は「=>」を使うことが推奨されている

    ex. { :id => abc }

 ・:id のようにコロンがついているもの

  任意の文字列と一対一に対応するオブジェクト

  http://docs.ruby-lang.org/ja/2.0.0/class/Symbol.html

  文字列だと別のオブジェクトになるけど、

   a = 'cat'

   b = 'cat'

  こう書くと同じオブジェクトを参照するようになる

   c = :cat

   d = :cat

  ・型変換

    - 文字列 ⇒ 数字 : num = "1".to_i

    - 数字⇒ 文字列 : str = 1.to_s


自分が使ってみた感想として、rubyはとっつきやすいオブジェクト指向言語って印象を受けました。

かなり素人目ですが、javaはクラスつくってコンパイルしてなんたらかんたら・・・みたいな色々裏の仕組みが複雑なのに対し、rubyはテキストファイルで書いたものがそのまんまコマンドで実行できるという単純な仕組みなので、オブジェクト指向を内部構造からしっかり把握しながら学びたい初心者さんには適してるんじゃないかと思いました。
なので、自分ももしかしたらjavaよりrubyのほうが根本的な理解を深めるには合っているのではないか?と思ったり・・。

ただ、rubyに慣れてしまうとカッコやセミコロンで記載するcやjavaが違和感に感じたり、微妙な文法の差に戸惑ったりすることもあるかもしれません。
でもそれはすぐ解決することだと思うので、総じて見ればrubyはプログラミングの入門言語として良い言語だと感じました。