1. ホーム
  2. dart

[解決済み] Dartの "var "型と "dynamic "型の違い?

2023-01-18 12:57:48

質問

によると この記事 :

<ブロッククオート

ご存知の方も多いかと思いますが dynamic (は、静的な型注釈が提供されない場合の代用型です。

では、次のような違いがあるのでしょうか。 dynamicvar ? どのような場合に使用するのでしょうか?

どのように解決するのですか?

dynamic は、すべての Dart オブジェクトの基礎となる型です。 ほとんどの場合、明示的に使用する必要はないでしょう。

var はキーワードで、意味は "ここで型が何であるかを表記するのは気にしない。" Dart は var キーワードをイニシャライザーの型に置き換えるか、あるいは dynamic のままにしておくこともできます。

使用する var を使ってください。

var msg = "Hello world.";
msg = "Hello world again.";

使用方法 final を使ってください。

final msg = "Hello world.";

使用方法 final (を使うことで、意図しないのに誤って変数の代入を変えてしまうような状況を捕らえることができます。

の間には微妙な違いがあることに注意してください。 finalconst というのは、オブジェクトになると final は必ずしもオブジェクト自体をイミュータブルにするわけではありませんが、一方 const はそうします。

// can add/remove from this list, but cannot assign a new list to fruit.
final fruit = ["apple", "pear", "orange"];
fruit.add("grape");

// cannot mutate the list or assign a new list to cars.
final cars = const ["Honda", "Toyota", "Ford"];

// const requires a constant assignment, whereas final will accept both:
const names = const ["John", "Jane", "Jack"];