📌
【Flutter】is,as,とかって何なんですか
Type test operators:「型テスト演算子」について
- 実行時の型のチェックに便利
as
- オブジェクト指向で言うところの「型のキャスト」。
Person型を含んだオブジェクトである「employee」を「アップキャスト」している感じ。
→employeeがPerson型であるのが確実な時だけ、アップキャストas
を使っていい
employeeオブジェクトはPerson型を親に持つとする。すると
(employee as Person).firstName = 'Bob';
is
- オブジェクトが指定された型を持っている場合は trueを返す。
→オブジェクトの型がわからない、確定していない場合はis
で型の確認を行う
if (employee is Person) {
// Type check
employee.firstName = 'Bob';
}
上記の as is は同等のコードではない。もし
(employee as Person).firstName = 'Bob';
のコードでemployee
がnull
or Person型でない
場合例外をスローする。
if (employee is Person) {
// Type check
employee.firstName = 'Bob';
}
こっちだと例外は起きずにすむ。
is!
- オブジェクトが指定された型を持っていない場合に trueを返す。isとやることは同じ。
次はキーワードをまとめる回でもしよかな知らないの多いし
Discussion