●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

Rubyのスコープ(Scope)とは?変数の見える範囲を理解しよう

プログラムにおいて「スコープ(Scope)」とは、変数や定義が有効な範囲のことです。 Rubyでは、変数の種類によってアクセスできる範囲が決まっており、これを理解することでバグを防ぎ、読みやすいコードが書けるようになります。

スコープの基本:変数の種類

種類書き方スコープ
ローカル変数nameメソッド・ブロック内など限定
インスタンス変数@nameインスタンス(オブジェクト)単位
クラス変数@@nameクラス全体で共有
グローバル変数$nameプログラム全体で有効
定数NAME定義したクラス・モジュール内

ローカル変数のスコープ

def greet
  name = "さくら"
  puts "こんにちは、#{name}"
end

# puts name  # → エラー:ローカル変数は外から参照不可

ローカル変数は定義されたブロック・メソッド内のみ有効で、外からアクセスできません。

インスタンス変数のスコープ(@変数)

class Person
  def set_name(name)
    @name = name
  end

  def show_name
    puts @name
  end
end

p = Person.new
p.set_name("たろう")
p.show_name  # → たろう

@name のようなインスタンス変数は、同じインスタンス内で共有されます。

クラス変数のスコープ(@@変数)

class Counter
  @@count = 0

  def initialize
    @@count += 1
  end

  def self.total
    puts @@count
  end
end

Counter.new
Counter.new
Counter.total  # → 2

@@変数 は、クラス全体(全インスタンス)で共有されます。

グローバル変数のスコープ($変数)

$name = "世界"

def greet
  puts "こんにちは、#{$name}"
end

greet  # → こんにちは、世界

$変数どこからでも参照・変更できるため便利ですが、予期せぬ副作用を生みやすいため使用は最小限にしましょう。

定数のスコープ

class App
  TITLE = "MyApp"

  def self.show_title
    puts TITLE
  end
end

App.show_title  # → MyApp

定数はクラス・モジュール・グローバルなスコープに定義でき、慣習としてすべて大文字で書きます。

ブロックスコープの注意点

x = 10

3.times do |i|
  x = i  # ここでもxを再代入できる
end

puts x  # → 2(最後の値)

Rubyのブロック内では、外側のローカル変数がそのまま使えるため、予期せぬ値の変更に注意が必要です。

まとめ

Rubyのスコープ(Scope)は、変数や定数の有効範囲を管理する重要な概念です。 正しく理解することで、バグを防ぎ、読みやすく保守しやすいコードが書けるようになります。

ローカル変数を基本に、状況に応じてインスタンス変数や定数などを使い分ける習慣をつけましょう!

 

Ruby関連用語集

−−−−−  Ruby  −−−−−

Rubyのオブジェクト指向とは?クラスやメソッドの仕組みをわかりやすく解説

Rubyのクラス(Class)とは?オブジェクトの設計図を学ぼう

Rubyのモジュール(Module)とは?コードを整理・共有する仕組みを学ぼう!

Rubyのメソッド(Method)とは?定義と使い方をやさしく解説

Rubyのブロック(Block)とは?繰り返しやコールバック処理に使える便利な仕組み

Rubyのイテレータ(Iterator)とは?繰り返し処理の基本をマスターしよう!

RubyのEnumerableモジュールとは?便利な繰り返し処理を一気に習得!

RubyのProc(プロック)とは?ブロックをオブジェクト化して使いこなそう

RubyのLambda(ラムダ)とは?Procとの違いも含めてやさしく解説!

Rubyのシンボル(Symbol)とは?文字列との違いと使いどころをわかりやすく解説

Rubyのハッシュ(Hash)とは?キーと値のペアでデータを扱う基本構造

Rubyの配列(Array)とは?基本構文と便利な操作方法をマスターしよう!

Rubyのスコープ(Scope)とは?変数の見える範囲を理解しよう

Rubyのインスタンス変数(@変数)とは?クラスでデータを保持する基本

Rubyのクラス変数(@@変数)とは?全インスタンスで共有する値を管理する

Rubyの定数(Constant)とは?値を固定するための書き方と使い方

Rubyのグローバル変数($変数)とは?使い方と注意点をやさしく解説

Rubyのself(自己参照)とは?使い方と意味をやさしく解説!

Rubyの継承(Inheritance)とは?コードの再利用と拡張の基本

Rubyのミックスイン(Mixin)とは?モジュールで機能を共有する方法

Rubyのメソッドのオーバーライド(Override)とは?継承したメソッドを再定義しよう

Rubyの例外処理(Exception Handling)とは?エラー発生時の安全な対処法

Rubyのbegin-rescue-end構文とは?エラーを安全に処理する基本構文

Rubyのyield(ブロック呼び出し)とは?ブロックの使い方と柔軟なメソッド設計

Rubyのrequire / loadとは?外部ファイルの読み込み方法と使い分け

Rubyのgem(RubyGems)とは?便利なライブラリの管理方法を解説!

Bundlerとは?Rubyのgemを簡単に管理できる便利ツール

RubyのRakeとは?ビルドやタスクを自動化する便利ツールを解説!

IRB(Interactive Ruby)とは?Rubyを手軽に試せる対話型ツール

Rails(Ruby on Rails)とは?Webアプリ開発の強力フレームワーク

 

 

学校案内

17,000円の講座から!

質問には24時間以内に返答・質問回数は無制限など万全の学習サポート!

是非ご閲覧下さい!

札幌情報技術学院インターネットカレッジ トップページ