【AutoIt】グローバルスコープとローカルスコープ

グローバルスコープとは、スクリプト全体のことです。関数の中はローカルスコープと呼びます。

変数がどの範囲で有効かを示す「有効範囲」のことで、会社に例えると分かりやすいです。

目次

グローバルスコープ (Global Scope)

会社全体がグローバルスコープです。

どの関数にも属していない、スクリプトの一番外側の領域を指します。ここで宣言された変数(GlobalまたはDimで作成)はグローバル変数となり、会社のロビーにある共有の掲示板のようなものです。

どの部署(関数)の社員も、その掲示板に書かれた情報(変数の値)を読んだり書き換えたりできます。

ローカルスコープ (Local Scope)

関数の中はローカルスコープです。

これは会社の中の各部署のプライベートなオフィスに例えられます。関数の中でLocalを使って宣言された変数(ローカル変数)は、その部署の中にあるホワイトボードのようなものです。

  • その部署の社員(関数内のコード)しか、そのホワイトボードは見たり書いたりできません。
  • 部署での仕事が終わる(関数が終了する)と、ホワイトボードの内容はきれいに消されてしまいます。
  • 他の部署(他の関数)からは、そのホワイトボードの存在すら知ることができません。

コードでの例

; === グローバルスコープ (会社の共有掲示板) ===
Global $g_CompanyName = "株式会社AutoIt"

_PrintSalesDeptReport()
; MsgBox(0, "エラー", $sReportTitle) ; ← これはエラーになる。営業部のホワイトボードは見えない!


; === ローカルスコープ (営業部オフィス) ===
Func _PrintSalesDeptReport()
    ; この変数は、この関数の中だけで有効な「ホワイトボードのメモ」
    Local $sReportTitle = "8月度 売上報告"

    ; 営業部は、自分たちのホワイトボードも、会社の共有掲示板も両方見ることができる
    MsgBox(0, "営業部より", "会社名: " & $g_CompanyName & @CRLF & "件名: " & $sReportTitle)
EndFunc   ;==>_PrintSalesDeptReport
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次