プログラミング

    [Ruby嫌い]Hash(ハッシュ)のコロンって何?文字列と違うの

    Rubyのハッシュキーにシンボル型

    ハローワールド!
    プログラミング言語にRubyというものがあります。
    七色のプログラミング言語を操るわたしなのですが、
    この言語は結構嫌いです。
    嫌いな理由は色々あるのですが、今回はハッシュについて解説します。

    ハッシュは他の言語だと、連想配列や辞書(ディクショナリー)と言われるものです。
    キーと値のペアを複数入れておくための型がハッシュです。

    コロンの付いたハッシュ記法について

    いきなりですか、Ruby のハッシュでコロン(:)を使っている記法をみたことないですか?

    {:key1=>1, :key2=>2}

    コロンがついているのは、キーが「シンボル型」である時の表記です。

    シンボル型は難しいので、まずキーが数値型、文字列型のハッシュで基本的な使い方をおさらいし、最後にシンボル型をキーとしたハッシュについて解説します。

    ハッシュの基本的な扱い方

    まず、はじめに数値型がキーのハッシュで扱い方を解説します。

    h00 = { 0 => “北海道”, 1 => “青森” }

    のようなハッシュがあったとして、要素にアクセスするのは添え字を使います。

    p h00[0] # 北海道と表示される
    p h00[1] # 青森と表示される

    代入時は

    h00[2] = “秋田”

    更新も

    h00[2] = “あきた”

    とします。

    削除時は

    h00.delete(2)

    とします。

    なにも入っていないところにアクセスすると nil が返ります

    n = h00[3] # nil

    要素数を得るときは

    h00.size
    または
    h00.length

    とします。

    ここまでが基本。

    基本が怪しい・・・という方は、コスパのいい SKill Hacks などで勉強しましょう(^-^
    →動画で学ぶ Skill Hacksを受講する
    ↑★最短・最速で脱プログラミング初心者★

    文字列型がキーのハッシュ

    続いて、キーが文字率のハッシュについてです。

    h01 = { “zero” => 0, “one” => 1 }

    文字列型の時も数値型の時と変わりません。

    シンボル型がキーのハッシュ

    さて、最後にキーがシンボル型のハッシュについてです。

    シンボル型というのは

    :hoge
    :fuga

    のようなものです。

    p (:hoge).class # Symbolと表示される

    シンボルはRubyの内部変数そのもので、これを使うと高速にデータを扱えるため存在しています。

    シンボル型をキーとしたハッシュは以下のようになります。

    h10 = { :first => 1, :second => 2 }

    取り出すときは

    v1 = h10[:first]
    v2 = h10[:second]

    のように取り出します。

    コロンの位置が後ろになる簡素化した書き方のハッシュ

    先ほどの

    h10 = { :first => 1, :second => 2 }

    と同じ値のハッシュが以下のような書き方で書けます。

    h11 = { first: 1, second: 2 }

    コロンが後ろになります・・・

    さらにこのコロンが後ろにある記法なのですが、シンボル名をダブルクオーテーションで囲んでもシンボルとして扱われます。

    例えば、

    h12 = { “first”: 1, “second”: 2 } # 文字列ではなくシンボルになる
    # h12[:first] が 1
    # h12[“first”] は nil です

    見た目文字列なのによくみたらシンボルという・・・

    Ruby 嫌い。

    ハッシュを関数に渡すときのとっておきのややこしさ

    Ruby の関数に渡す最後引数のハッシュの、中カッコは省略できるという仕様があります。

    def f(a, h)
       puts a
       puts h
    end

    f(0, key1:1, key2:2)

    結果
    0
    {:key1=>1, :key2=>2}

    3つ引数を渡しているように見えて、実は2つだけという。。。

    これも、私がRubyの嫌いなところです。

    とはいえRuby

    いかがでしたでしょうか?
    Rubyは正直勘弁してください、という言語なのですが、
    日本ではRuby On Railsが便利すぎてシェアが大きい言語です。

    フリーランスでエンジニアになって稼ごうとする方にもおすすめ。
    多くの会社で使われているということは需要が大きいです。

    Rubyをメインに使われていないような会社でも、スクリプト言語というのは結構な場面で使います(^-^

    先の、ハッシュとシンボルについてもちゃんと勉強していれば、
    コロンとハッシュを見た時点で、「あ、これは前にあるか、後ろにあるか気を付けないといけないな・・・」と鼻が利くようになり、気がつけるでしょう。

    Rubyの勉強なら

    Rubyはこのように罠が多いので独学はかなり大変です。
    こういう罠をよく知っている方がいる会社なら防ぐことができると思いますが、そうでない場合は、誰かに聞けた方がいい。
    と、なるとメンターがつくようなスクール系の学習がよさそうに思いますが、どこも高いです。30万円くらいしますよね。

    そこでいろいろ探していたところ、コスパがよくて良心的な講座を見つけました。
    それは、Skill Hacksです。

    Skill Hacksとは?

    Skill Hacksは、Udemyベストセラー動画の著者で、
    書籍執筆経験もあるエンジニア経験もある迫さんの作った講座で、
    LINE@による無制限質問サポート付きの動画講座になっています。

    ただ、動画があるだけではなく、無限のサポート付きで買い切りというのが美味しいところ!
    Rubyは、罠がいっぱいなので何でも質問できるのはかなり美味しいです。

    挫折しない仕組みですね。

    動画もわかりやすくて、現時点で以下のようなコンテンツが用意されています。

    第00章 事前準備をしよう (2本)
    第01章 HTMLのサイト作成講座 (6本)
    第02章 CSSでのWebデザイン基礎講座 (6本)
    第03章 HTML/CSSワークショップ -自己紹介サイトを作ろう- (6本)
    第04章 Bootstrap活用デザイン講座 (7本)
    第05章 Rubyプログラミング学習講座 (12本)
    第06章 Rubyワークショップ -メモアプリ開発- (7本)
    第07章 Ruby on Rails コントローラ・ビュー編 (14本)
    第08章 Rails基礎講座 モデル・データベース編 (10本)
    第09章 Rails実践編 メモアプリ開発・デプロイ (11本)
    第10章 Rails実践編 メモアプリに削除編集カテゴリを追加 (13本)

    評判も上々で、2か月にして手に職を付けた方もいます。

    終わりに

    ということで、現役プログラマーから見て Skill Hacksはかなりおすすめです。
    こういう講座を受けてれば、罠だらけの Rubyをコスパ最強で近道してまなべるなぁ・・・と思います。

    さらに、Rubyだけでなく、Ruby On Railsも学べるので実力をつけて、即仕事を取ってきたり転職したりとかも可能です。
    もちろん現役の方も、Web系学んでみたい!という方にもいいと思います。

    これがあれば、わたしもRuby嫌い!とはならなかったでしょう。
    検討してみてはいかがでしょうか?

    → Skill Hacksを受講する