5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

マルチスケールシミュレーション特論:第 11 回をまとめてみた

Last updated at Posted at 2020-12-01

!ruby-2.5.5p157

はじめに

今週は chast 式 Ruby がついに最終回!! 前回の授業と同様にして、class 化について学習を行った

class 化

サンプル用のプログラムを元に class についての学習を行っていく

class についての詳しい説明はここを確認する

サンプルプログラム

 1  class Greeter
 2    def initialize
 3      @name = gets_name
 4      puts_hello
 5    end
 6  
 7    def puts_hello #salute
 8      puts "Hello #{@name}."
 9    end
10  
11    def gets_name
12      name = ARGV[0] || 'world'
13      return name.capitalize
14    end
15  end
16  
17  Greeter.new

プログラム解説

class の中の関数はメソッドと呼ばれる物になる。本プログラムでは、

  • initialize()
  • puts_hello()
  • gets_name()

が相当する

Ruby では、class の外でメソッドを呼びだす為には、Greeter.new のように「class 名.メソッド名」のようにして扱う事ができる

class の継承について

class には、親の class からメソッドなどをクラス変数などを継承する事ができる。サンプルプログラムを見ながら学習をしていく

サンプルプログラム

 1  # inherited class
 2  class Greeter < String
 3    def hello
 4      "Hello #{self}."
 5    end
 6  end
 7  
 8  # extend class
 9  class String
10    def hello
11      "Hello #{self}."
12    end
13  end

プログラム解説

今回は String class が存在しているがこの class を Greeter に継承している。これによって、Greeter は String のメソッドを扱う事ができる

注意

プログラムを書く時に 初め から class や継承などを意識してプログラムを書かなくていい

emacs 小ネタ

ダブルクォーテーション

授業中に文字列を作成しようとダブルクォーテーションを使う場面があったがダブルクォーテーションを初めから自分で閉じていたが、emacs には 文字列 を判別してくれる機能がある

普通はいきなりカッコやダブルクォーテーションを始めから閉じるのではなく一つ一つ閉じていく のが基本になる

参考文献


  • source ~/Downloads/git/grad_members_20f/members/taiseiyo/memos/class11.org
5
0
0

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
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?