覚えたら書くスマートフォン用の表示で見る覚えたら書くIT関係のデベロッパとして日々覚えたことを書き残したいです。読みながらの写経です。見る関数で匿名の内部クラスを宣言した場合、その関数の引数とローカル変数をそのクラスの中から参照できますが、ラムダでも同様のことが可能です。関数でラムダを使用すると、関数の引数とラムダの前に宣言されているローカル変数を参照できます。}}実行結果は以下の通りで、正常に各変数にアクセスできていることがわかります。記述すると大凡以下のようになります。あるため、変更ができません。それに対して、Kotlinではfinal変数への参照だけに制限されていません。そのため、ラムダ内から変数を変更することもできます。Javaで以下のようなコードを書いてもコンパイルエラーとなってしまいます。}}これに対してKotlinでは以下のようなコードをコンパイルすることが可能です。5Javaとは違い、Kotlinはラムダ内からfinalではない変数を参照して、それを変更することも可能です。デフォルトでは、ローカル変数のライフタイムは変数が宣言されている関数によって制約されます。ラムダによってキャプチャされた場合は、この変数を使用するコードは保持されて、あとで実行されます。final変数をキャプチャすると、その値はそれを使用するラムダのコードとともに保持され、final変数でない場合はその値を変更できるようにとくべるなラッパーに囲まれ、ラッパーへの参照がラムダとともに保持されます。注意点ラムダがイベンハンドラのように用いられて、非同期に実行される場合、ラムダが実行された時に初めてローカル変数への変更発生します。onClickハンドラが呼び出されるため、変更されたクリック数を観測することはできません。まとめKotlinにおけるラムダのスコープ内の変数アクセスは、変数に対するキャプチャによってJavaと異なる操作が可能であることがわかりました。読者になるスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。