はじめに
Flutter
はDart
と呼ばれているプログラミング言語を使うのですが、
このDart
で割り算するとdouble型
になるのですが受け手がint型
だとすると、コンパイルエラーになります。
int num = 1000 / 9; // コンパイルエラー A value of type 'double' can't be assigned to a variable of type 'int'. Try changing the type of the variable, or casting the right-hand type to 'int'.d
このエラーを解消するための方法について共有したいと思います。
DartだとC言語の感覚でキャストがうまく書けないので、少し工夫が必要でした。
ダメだったパターン
as int
VSCodeのQuickFixだとこれでやってきます(まじで罠)
こちらはコンパイルエラーにならないですが、実行時エラーとなります。
int num = (1000 / 9) as int;
The following TypeErrorImpl was thrown building Builder: Expected a value of type 'int', but got one of type 'double'
C言語の感覚でいくと地獄をみるぜ。
成功したパターン
toInt()
()で囲んで .toInt() というint型に変換するメソッドを使うとキャストができます。
int num = (1000 / 9).toInt();
~/ だともっと短いコード書ける
~/ は割り算した結果をint型にするというものです。 toInt()よりコードが短くなります。
int num = 1000 ~/ 9; ```` ~(チルダ)はあまり使わない文字ですよね。~はいつもどこを押したら表示できるのか分からんくなる笑 AppleのJISキーボードだと↓で打てます。 [f:id:m2game:20220728094633p:plain]