const = const val?

Kotlinを勉強してて「const と const valの違いって何?」って個人的に思ったので調べたことをここに残します。

共通点 : どちらも後の書き換えは不可能

異なる点 : 変数が生成されるタイミング

得た情報を整理すると、const val はプログラムがコンパイルされた時点で、valは宣言部分が呼び出されたタイミングで生成されるらしい。その都合上関数の計算結果を代入することがconst valでは行えない。

また通常のクラス内では宣言できず、トップレベル(関数外)とかシングルトンクラスの中でのみ宣言できる。

気になる使い分けだがconst valはゲッターが内部処理にゲッターが用意されておらず、その分アクセススピードが速いのでconst valが使える場面があれば積極的に使う方が良いらしい。

参考

[1]Kotlin Bootcamp for Programmers 5.1: Extensions 4. Task: Study constants

[2]kotlinで定数を定義する時【const】vs【val】

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です