Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

関数内の変数で、関数外に同名の変数があるとローカル変数にならない #22

Open
taisukef opened this issue Jan 8, 2025 · 4 comments

Comments

@taisukef
Copy link
Member

taisukef commented Jan 8, 2025

a = 3
function func() {
  a = 5
}
func()
print a

関数外に同名の変数が後でできてしまうと、関数内の挙動が変わってしまうのは問題

仕様

引数列の変数や、関数内で新たに代入された変数は、その関数内でのみ使用できます。
基本的に関数内で関数外の変数も使用できますが、引数列の変数と同名の関数外の変数は、関数内で使用できません。

@taisukef
Copy link
Member Author

taisukef commented Jan 8, 2025

解決案1

関数外の変数は参照することはできますが、代入することはできません。代入は関数内でのみ使用できる同名の変数に代入され、関数外の変数は変わりません。

@taisukef
Copy link
Member Author

taisukef commented Jan 8, 2025

解決案2

関数外の変数を使うことはできません。

@taisukef
Copy link
Member Author

taisukef commented Jan 8, 2025

解決案2の場合でも、関数外の関数は使用できないとつらい

@taisukef
Copy link
Member Author

解決案3

引数列の変数や、関数内で新たに代入された変数は、その関数内でのみ使用できます。
ただし、引数列に関数外の変数と同じ名前をつけることはできません。
関数外の変数は、関数内でも使用できます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant