LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 3 years have passed since last update.

Rubyの第1歩(入出力編)

Last updated at Posted at 2020-11-04

!Mac OS X-10.15.7 !ruby-2.6.1p33

はじめに

本記事ではマルチスケールシミュレーション第5回授業Rubyの入出力について扱います。

目次

  1. Rubyとは

  2. 授業内容

    1. Rubyの出力
    2. Rubyの入力
    3. 出力先指定
  3. まとめ

  4. 参考資料

そもそもRubyとは

Rubyを実際に触れる前に、Rubyという言語がどういった経緯で生まれ、どんな特徴を持った言語なのかを調べてみた(Wikipedia)。

Ruby誕生の経緯

Ruby(ルビー)は、まつもとゆきひろ(通称: Matz)により開発されたオブジェクト指向スクリプト言語。名称の Ruby は、プログラミング言語 Perl が6月の誕生石である Pearl(真珠)と同じ発音をし、「Perlに続く」という意味で、6月の次の誕生石(7月)のルビーから名付けられた。

Wikipediaより引用

Rubyの入出力

様々な出力方法

Rubyには様々な出力方法がある(らしい)。

Rubyを授業で扱い出してから、まだ挨拶(HelloWorld)ができていなかったので、

手始めにいくつかの出力方法を挨拶がわりに試してみます。

(出力結果は、コメントアウト部分)

hello_world.rb
puts 'hello world by.puts'
# hello world by.puts

p 'hello world by.p'
# "hello world by.p"

pp 'hello world by.pp'
# "hello world by.pp"

print 'hello world by.print'
# hello world by.print%

↓ まとめ ↓

出力  改行 説明・予想                
puts 通常?の出力。個人的にお気に入り。             
p ""で囲まれて出力。今後確認していきたいが、デバッグ用っぽい。
pp ""で囲まれて出力。pとの差異がわからないが、pの進化系らしい。
print × 他言語でもよく見るやつ。putsとの差異は改行の有無だと思われる。

様々な出力方法があって使い分けが必要になりそう。。。

様々な入力方法

出力については色々と試してみたので、次は入力を見てみましょう

まずはよくある入力、getsを使ってみます

gets_name.rb
print '名前入力してね >>>>> '

name = gets
puts "Hello " + name

↓ 出力結果 ↓

$ ruby get_name.rb
名前入力してね >>>>> Rooter
Hello Rooter

こんな感じ。。。

しかし、今回はコマンドライン操作も授業目的の一つであるため、

gets は使わず、コマンドライン引数的な入力方法を用います。

というわけで、今回は ARGV[0] について勉強していきます。

ARGV[0]

ARGV[0]とは、引数(argument)配列の 0番目 を表しています。

hello_name.rb
puts "Hello #{ARGV[0]}. by.puts"

print "Hello #{ARGV[0]}. by.print \n"

print "Hello " + ARGV[0] + ". by.print-ver2 \n"

↓ 出力結果 ↓

$ ruby hello_name.rb Rooter
Hello Rooter. by.puts
Hello Rooter. by.print
Hello Rooter. by.print-ver2

出力先の指定

ruby hello_name.rb Rooter > hello_name.txt

↓ 確認 ↓

$ cat hello_name.txt
Hello Rooter. by.puts
Hello Rooter. by.print
Hello Rooter. by.print-ver2

まとめ

今までなぜか触ってこなかったRubyに授業内だが触れることができた。所々他言語と違う部分があって、難しい。

参考

以下のサイトを参考にしました。


  • source ~/grad_members_20f/members/Rooter-edi/qiita/week5.org
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up