0x050 CANT_IMPLICITLY_CONVERT

T1型の変数にはT2型の値を代入できません。明示的な変換が存在します。型変換を忘れていませんか?


taiseiue | 2024-11-21

概要

明示的な変換が必要な型変換を暗黙的に行おうとしました。 T1T2の型の関係を調べて、必要な変換を行うことで解決することを確認してください。

確認すべきこと

  • 関数の戻り値や変数が持つ型(T1)を確認してください。
  • 使用している関数の引数や代入先の変数の型(T2)を確認してください。
  • どちらの型でも、null許容な文脈かどうか確認してください。

よくあるケース

ケース1. null非許容な変数に、null許容な値を代入した

このエラーは、null非許容な変数に、null許容な変数などを用いて代入した時に発生します。 次のコードでは、CANT_IMPLICITLY_CONVERTが発生します。

AliceScript
number? n = 123; // n はnull許容

number x = n; // xはnull非許容
// null非許容な変数に、null許容な値を代入できない

// `NUMBER`型の変数には`NUMBER?`型の値を代入できません。明示的な変換が存在します。型変換を忘れていませんか?