本日の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 件のコメント:
コメントを投稿