関数の戻り値にローカル変数を使うとバグる。(
こちら)
私の記憶が正しければ・・・左の関数では「4」が返ってくるはずなのだが。(別言語では)
ちょっとこの件ではハメられました。
そういうもんなんですかね?
JavaScriptのソースに変な記述が
ソース先頭部分でしっかりと変数workは宣言されている。
let work: number;
にもかかわらず、関数内で二重宣言されている。(なぜか後で気付いた・・・)
function function2 () {
let work: number;
for (let カウンター3 = 0; カウンター3 <= 4; カウンター3++) {
work = カウンター3
}
return work
}
は?
pythonって関数の中でも再度「Global work」を定義してる。
めんどくっせえー
ちなみにJavascript/Python関数内部の「Global work」を取り除いてもちゃんと動きましたとさ。わからんねぇ
~~~~~~~~~~
work = 0
def on_button_pressed_a():
basic.show_number(_function())
input.on_button_pressed(Button.A, on_button_pressed_a)
def _function():
global work
カウンター = 0
for カウンター2 in range(5):
work = カウンター2
return カウンター
def function2():
global work
for カウンター3 in range(5):
work = カウンター3
return work
~~~~~~~~~~~~~~
ソース自動変換が変なのはしょうがないかもしれないが、
まけこでEditor(MS-IMEのバカ変換!)の変数の表示には兎に角くたびれる。
せめてGlobal / Localの違い位は表示せんかい!