Help us understand the problem. What is going on with this article?

Ruby.学習その1

投稿目的

  • 個人の学習目的で投稿していきます。
  • Rubyの入門を読みながら自分なりの思考で記述しています。

参考資料

ゼロからわかる Ruby 超入門 (かんたんIT基礎講座)

Rubyとは?

  • オープンソースの動的なプログラミング言語でシンプルさと高い生産性を備えている。
  • Rubyではファイル名は小文字を使うのが一般的。

Ruby実行

  • エディターでプログラムを書いてファイルに保存。
  • Rubyでプログラム記述したプログラムのファイル名の末尾には拡張子.rbを付ける。
  • ターミナルでプログラムを保存したファイルへcdコマンドで移動。
$ cd [ファイル名]
  • ターミナルでRubyのプログラムを実行。
$ ruby [ファイル名]

putsメソッド

  • putsは文字を画面に表示するメソッド(命令)。
  • 整数、文字列、計算式などでも表示することができる。
puts "hello"  

計算

  • Rubyでは整数と少数は別のものとして扱われ、整数同士の計算の結果は整数になるルールがある。
puts 5 / 2  # 結果: 2
  • 少数点の結果を求めるには両方または一方を少数にすることで可能。
puts 5 / 2.0   # 結果: 2.5

変換

  • 文字列と数値を計算するとエラーになる。
  • 修正方法としてto_sメソッドとto_iメソッドを利用する。
puts 10 + "10"   # エラー
  • to_sメソッドで整数を文字列に変換。
 puts 3.to_s + "3"   # 結果: 33
  • to_iメソッドで文字列を整数に変換。
 puts 3 + "3".to_i  # 結果: 6

オブジェクト

  • オブジェクト = 物
  • オブジェクトには整数オブジェクト、少数オブジェクト、文字列オブジェクトなど種類が様々存在する。
  • オブジェクトに対して何かをするメソッドは下記の形になる。
[オブジェクト.メソッド]

コメント

  • #を先頭に付けることでコメントと認識されてプログラムとして実行されない。
# コメント内容
  • 複数行をコメントにする場合は=beginと=endで囲んだ範囲がコメントと認識されプログラムとして実行されない。
=begin
コメント内容1
コメント内容2
コメント内容3
=end

変数

変数とは
  • 変数とはオブジェクトに付ける名札.
変数のルールと記述
  • = は代入演算子、左辺に右辺を代入する。
  • 変数名は原則として英字、数字、_(アンダースコア)を利用する、ただし頭文字は英字、アンダースコアを利用する.
hensuu_ruby(変数名) = 

定数

定数とは
  • 変数と意味は一緒だが定数は値を固定したい時に利用する。
定数のルールと記述
  • 定数は変数と同様値を代入することはできるが値を上書きして変更することはできない。
  • 定数は先頭の文字を大文字にすると定数となる。
Const_Ruby(定数名) =  

式展開

  • #{}を利用することで文字列に計算式を埋め込んで結果を表示できる、これを式展開という。
puts "3 + 5の答えは#{3 + 5}です"   # 結果: 3 + 5の答えは8です
  • 式展開に変数も利用することができる。
fruit = メロン   / fruit変数
puts "fruitには#{変数名}が入っている"  # 結果: fruitにはメロンが入っている 
補足: 計算式と変数の他にも様々なプログラムを埋め込むことができる.

getsメソッド

  • getsメソッドを利用することでターミナ上から値を入力することができる。
  • 条件分岐を使えば入力した値から結果を変えるプログラムを作ることができる

pメソッド

  • pメソッドはデバッグをする際に便利なメソッド。
p 変数やオブジェクト
補足: バグは問題があって動かない部分、デバッグはバグの原因を調べて正すこと.

irb(Interactive Ruby)

  • ターミナル上でirbを利用することで1行ずつ結果を見ながらプログラムを実行していくことができる。
$ irb  # 実行すると下記の表記になる
$ irb(main:001:0)> 1 + 2(プログラムを入力) # 実行
=>3  # 結果が返ってくる
プログラムの途中で一時停止してirbを使用
  • [require"irb"]と[binding.irb]を利用することでプログラムの途中で一時停止してirbを使うことができる
test1.rb
ruby:test1.rb
require "irb"
hensuu = 100 
binding.irb   # ここで一時停止
puts hensuu   # まだ実行されない
ターミナル
$ ruby test1.rb   # test1.rbファイルを実行
$ irb(main):001:0> hensuu = 50   # hensuuに50を上書  
=>50  
$ irb(main):001:0> exit   # irbを抜けてる
=>50   # [puts hensuu]が実行される
補足:Ruby2.3以前の場合はターミナルで
$ gem install pry   
$ sudo gem install pry   # Macに初期インストールされたRubyを使用している場合
を実行してインストールするとirbの替わりにpry(irbの代替)を使用する.

エラーの読み解き

  • [hi2.rb:1:]はどのファイル名の何行目かというメッセージ。
  • [undefined method 'put' for main:Object]はエラーメッセージの本文。
  • [Did you mean? puts putc]はRubyからの提案。
$ ruby hi2.rb
hi2.rb:1:in `<main>': undefined method `put' for main:Object (NoMethodError)
Did you mean?  puts
               putc
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away