【Ruby入門】数値の基本とメソッド (timesメソッド他)
  • facebookページ
  • twitterページ
  • 2017.10.17

    【Ruby入門】数値の基本とメソッド (timesメソッド他)

    プログラムにおいて文字列と並んで大事なものは「数値」です。Rubyのプログラムではこの数値を何気なく使ってしまいますが、実は非常に奥深いものです。

    また数値に関する多数のメソッドを使い、効率的に実装することも可能です。特に、数値に直接ドットとメソッド名をつなげて処理を書けるというのは、Rubyの世界ではすべてオブジェクトというのを実感できる使い方です。

    この記事では、数値の基本と各種メソッド(一例としてtimesメソッド)について解説します。

    数値とは何か

    Rubyでは、数値ですらオブジェクト

    数値とは?と聞かれても困るくらい、普通に使うものです。

    ここでは数学的な意味ではなく、Rubyの仕組みの中での位置付けを探ります。

    Rubyではすべてのモノが例外なくオブジェクトです。何らかのクラスを元に生成されたインスタンスだけではありません。

    数値や文字列といった、他言語ではプリミティブ型と呼ばれているモノですら、Rubyの世界ではオブジェクトです。

    他言語、例えばJavaの世界では数値はプリミティブ型と呼ばれる、いわゆる「オブジェクトではない原始的なモノ」です。オブジェクトとして扱いたいときは、Integerクラスというラッパークラスを使います。

    Java以外でも一般的に開発言語においては、数値とオブジェクトは別扱いになります。

    ところが、Rubyでは数値ですらオブジェクトなので、数値.メソッドという記述がありえます。

    数値に関連するクラス

    数値によって、どのクラスに属するのか変わります。以下は、数値に関するクラスの仲間たちです。

    どのクラスに属しているか

    数値がどのクラスに属しているかを調べるには、classメソッドを使います。

    [実行結果]

    数値がいずれかのクラスに属していることがお分かりいただけたと思います。余談ですが、複素数ですら普通に表現できるところが、Rubyのすごいところです。

    数値と文字の変換

    Rubyにおいて、数値から文字列、文字列から数値の変換は、とても簡単です。

    [実行結果]

    相互に変換できたことが分かりました。

    数値を扱う演算子

    数値を扱う演算子を解説します。

    他の言語と変わらない四則演算、つまり加算(+)減算(-)、乗算(*)、除算(/)と剰余(%)は省略します。

    それ以外に1つ、Rubyらしい演算子を解説します。

    多重代入

    複数の変数に、一気に代入する方法があります。多重代入です。

    [実行結果]

    3つの変数に、一気に数値を代入することができました。Ruby独特の方法です。とても便利ですね。

    Rubyにもやっぱりあった自己代入

    開発言語でおなじみの自己代入もあります。

    [実行結果]

    「sum += i」は「sum = sum + i」と同じ意味です。

    Rubyにはインクリメントがない!

    残念なことに、Rubyにはインクリメントがありません

    「i ++ 」といったおなじみの実装はできません。「i += 1」とする必要があります。

    数値に関連する便利なメソッド

    ここでは、Rubyの数値に関するメソッドを解説します。

    超便利!繰り返しで使うtimesメソッド

    5回、同じ数値を表示させたいときはtimesメソッドを使います。数値ドットtimesで記述します。

    5回数値を表示させることができました。

    他の言語では、「インスタンス.メソッド名()」の形式でメソッドを実行します。上記のプログラムは、数値がオブジェクトと同じ扱いであることを如実に物語っています。

    奇数か偶数か

    奇数か偶数かを判断するには、even?またはodd?を使います。

    [実行結果]

    英語で偶数?奇数?と聞いているようで、直感的で分かりやすいですね。また「数値 % 2 == 0」で偶数かどうかを判断させる方法もできますが、こちらの方が語りかけるようで分かりやすいです。

    プラスかマイナスか

    プラス、またはマイナスを判断するメソッドがあります。negative?とpositive?です。

    [実行結果]

    0以上か以下か、不等号の演算子で評価することも可能ですが、先ほどの例と同じく語りかけるようで分かりやすいです。

    ゼロかどうか

    比較演算子で==0とやっても良いのですが、これも一応メソッドがあります。zero?です

    [実行結果]

    if文でこれを使うと、見た目上分かりやすいです。

    ゼロかどうかをzero?と聞いているようで、面白いですね。

    特殊な演算子 <=>

    Rubyには、<=>という珍しい比較演算子があります。

    例えばaとbという2つの変数があり、演算子で比較すると、以下の結果を返します。

    実際に見てみましょう。

    [実行結果]

    a > b なので1が返ってきました。

    まとめ

    本記事では、Rubyにおける数値の扱いの基本を解説しました。

    数値を自在に扱うには、本記事の内容だけではまだまだ知識がたりません。数値の応用編の記事も参考にしてくださいね!


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア

    関連ワード

    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE