コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

Rubyに手を出したから計算機として使おうと思う

汎用計算機を手に入れた

Rubyというプログラミング言語に手を出してしまったので早速だけど計算機として利用しようと思う。
その昔に手を出したNode.jsとPythonと同じ展開のことを今またやろうとしている気がする。

Rubyについてはこちらから詳細をみることができます。ダウンロードもできます。
オブジェクト指向スクリプト言語 Ruby

オープンソースの動的なプログラミング言語で、 シンプルさと高い生産性を備えています。 エレガントな文法を持ち、自然に読み書きができます。

文法がエレガントかどうかはちゃんと触ってないからよくわからないけど、僕みたいにプログラミング言語をちゃんぽんして勉強している人には取っ付き易い雰囲気がある気がするよ。

早速さわってみるよ

まずは端末を開いてインストールできたかどうかとバージョンの確認ruby -vをするよ。
バージョンが確認できたらirbコマンドを入力するよ。
f:id:andron:20161006205357p:plain

さて、これでまたパソコンの中に電卓機能が搭載されてしまったと嘆いて今日の記事おしまいと行こうかと思いましたが、すでに公式で電卓ネタをやっているのでもうちょっとだけ続けていこうと思います。

20分ではじめるRuby
じゃあ、こちらのMegaGreeterプログラムを少し改変してRubyに触ってみましたとして記事を終えようと思います。

というわけで改変ソース

#!/usr/bin/env ruby

class MegaGreeter
  attr_accessor :names

  # Create the object
  def initialize(names = "くそったれの世界")
    @names = names
  end

  # Say hi to everybody
  def say_hi
    if @names.nil?
      puts "こんにちは... 誰?"
    elsif @names.respond_to?("each")
      # @names is a list of some kind, iterate!
      @names.each do |name|
        puts "こんにちは #{name}!"
      end
    else
      puts "こんにちは #{@names}!"
    end
  end

  # Say bye to everybody
  def say_bye
    if @names.nil?
      puts "..."
    elsif @names.respond_to?("join")
      # Join the list elements with commas
      puts "ばいばい #{@names.join(", ")}.  またきてね!"
    else
    	if names == "くそったれの世界"
      		puts "ばいばい #{@names}.  二度とこないでね!"
      	else
      		puts "ばいばい #{@names}.  またきてね!"
      	end
    end
  end
end


if __FILE__ == $0
  mg = MegaGreeter.new
  mg.say_hi
  mg.say_bye

  # Change name to be "秀吉"
  mg.names = "秀吉"
  mg.say_hi
  mg.say_bye

  # Change the name to an array of names
  mg.names = ["信長", "光秀", "家康"]
  mg.say_hi
  mg.say_bye

  # Change to nil
  mg.names = nil
  mg.say_hi
  mg.say_bye
end

そして、実行結果。
f:id:andron:20161007213342p:plain
出力結果を書き変えただけじゃないかと言われたらそうなんですけどね。……うん、ひどいね。
そういえばコピペは覚えないとよくいうけど、改変コピペってどうなんだろうね。やっぱり覚えられないのかな。