« ^ »

[WIP] 一時的なグローバル変数のパッチとスコープについて考える

2022/2/15 更新
約 1分 で読める

Emacs Lispの場合

(defvar variable-1 1)

(defun testing ()
   (+ variable-1 1))


(let ((variable-1 2))
   (testing))  ;; => 3

variable-1     ;; => 1

Pythonの場合

一時的にグローバル変数を書き換えることはできない。

variable_1 = 1

def testing():
    return variable_1 + 1

def do_testing_one():
  variable_1 = 2
  return testing()

def do_testing_two():
  global variable_1
  variable_1 = 2
  return testing()

do_testing_one()  # => 2
do_testing_two()  # => 3
variable_1  # => 2

Rubyの場合

$variable_1 = 1

def testing
  return $variable_1
end

def do_testing
  $variable_1 = 2
  testing()
end

しむどん三度無視 により 2022/2/15 に投稿、2022/2/15 に最終更新
« ^ »