本日のerrorというより昨日のerrorなんですけど
皆さんはこのスクリプトの結果が何になると思いますか?
goto *@f #defcfunc is_digit int h if h=='0'{ ff=1} if h=='1'{ ff=1} if h=='2'{ ff=1} if h=='3'{ ff=1} if h=='4'{ ff=1} if h=='5'{ ff=1} if h=='6'{ ff=1} if h=='7'{ ff=1} if h=='8'{ ff=1} if h=='9'{ ff=1} if ff!=1:return -1 return 1 *@ logmes str(is_digit('1')) logmes str(is_digit('a'))
|
結果は1\n1です
予想したとおりの結果にならないのはffがグローバル変数だからです
goto *@f #defcfunc is_digit_b int h ff=0 if h=='0'{ ff=1} if h=='1'{ ff=1} if h=='2'{ ff=1} if h=='3'{ ff=1} if h=='4'{ ff=1} if h=='5'{ ff=1} if h=='6'{ ff=1} if h=='7'{ ff=1} if h=='8'{ ff=1} if h=='9'{ ff=1} if ff!=1:return -1 return 1 *@ logmes str(is_digit_b('1')) logmes str(is_digit_b('a'))
|
このようにきちんとffに0を代入すると期待通りの結果になります
ffがグローバル変数だということに気付かず30分くらい試行錯誤しました
0 件のコメント:
コメントを投稿