https://jsprimer.net/basic/function-scope/
javascript
1// `increment`関数を定義して返す関数 2function createCounter() { 3 let count = 0; 4 // `increment`関数は`count`変数を参照 5 function increment() { 6 count = count + 1; 7 return count; 8 } 9 return increment; 10} 11// `myCounter`は`createCounter`が返した関数を参照 12const myCounter = createCounter(); 13myCounter(); // => 1 14myCounter(); // => 2 15// 新しく`newCounter`を定義する 16const newCounter = createCounter(); 17newCounter(); // => 1 18newCounter(); // => 2 19// `myCounter`と`newCounter`は別々の状態持っている 20myCounter(); // => 3 21newCounter(); // => 3
よくあるカウンターのサンプルなんですが、同じ意味のコードをDartで書こうと思っています。
Dart
1void main(){ 2 3 createCounter(){ 4 int count=0; 5 6 int increment(){ 7 count=count+1; 8 return count; 9 } 10 return increment; 11 } 12 13 myC=createCounter(); 14 myC(); 15 myC(); 16}
とりあえず書いてみたのですが、最後の2行で
The function 'myC' isn't defined
のエラーが出ます。
createCounter()関数の型注釈の仕方がわかりません。どうすれば良いでしょうか?
Dartでは関数宣言で型注釈付けないこと自体は問題無いですかね。
ただエラーが出るということもあるし、型注釈を書いたり書かなかったりというのは
モヤモヤするので、やはり型注釈が必要な気がします。
とりあえずエラーが出ないようにしたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。