final friends = [ 'Mary', 'Brad' ]; // 方法その1 final all1 = [ 'Bob', 'Tom', ] + friends; print(all1); // output // [Bob, Tom, Mary, Brad] // 方法その2 final all2 = [ 'Bob', 'Tom', ...friends ]; print(all2); // output // [Bob, Tom, Mary, Brad] // 方法その3 final all3 = [ 'Bob', 'Tom', ]..addAll(friends); print(all3); // output // [Bob, Tom, Mary, Brad] ``
【Flutter Dart】繰り返し(while, for, for in)
while
- 指定した条件がtrueの場合に処理をする
- 1回も実行されないことがある
var i = 1; while (i <= 5) { print('x' * i); i++; } print('Done'); // output // x // xx // xxx // xxxx // xxxxx // Done
for
- 指定した条件がtrueの場合に処理をする
- 1回も実行されないことがある
for (var i = 1; i <= 5; i++) { print('x' * i); } print('Done'); // output // x // xx // xxx // xxxx // xxxxx // Done
for in
- 指定したリストの回数処理をする
- 指定したリストが空の場合は1回も実行されない
for (var i in [1, 2, 3, 4, 5]) { print('x' * i); } print('Done'); // output // x // xx // xxx // xxxx // xxxxx // Done
<Flutter Dart>varとfinal、constの違い
var
- 型推測できる
- 型指定できない
- 変更可能(1回以上値をセットできる)
// var // 型推測できる var name = 'Bob'; // 値が文字列なのでString型と推測される // 型指定できない // var String lastName = 'Pit'; // コンパイルエラー // 変更可能(1回以上値をセットできる) name = 'Tom'; name = 'Mary';
final
- 型推測できる
- 型指定できる
- 変更不可能(1回だけ値をセットできる)
- varよりもfinalを使うほうがよい
// 型推測できる final name = 'Bob'; // 型指定できる final int age = 27; // 変更不可能(1回だけ値をセットできる) // name = 'Tom'; // コンパイルエラー // varよりもfinalを使うほうがよい // 変更される可能性があるためソースを読みにくい。追いにくい // →バグを生み出しやすい。デバッグしづらい
const
- 型推測できる
- 型指定できる
- コンパイル時に1回だけ値をセットできる
- finalよりもconstを使うほうがよい
// const // コンパイル時に1回だけ値をセットできる // 型指定できる const name = 'Bob'; // name = 'Tom'; // コンパイルエラー // 型指定できる const String lastName = 'Pit'; // 値が実行に評価され、コンパイル時に評価できないためコンパイルエラー // const upperCaseName = name.toUpperCase(); // myAgeとyourAgeはconstなので、totalAgeもコンパイル時に評価可能なのでエラーにならない const myAge = 1; const yourAge = 2; const totalAge = myAge + yourAge; // finalよりもconstを使うほうがよい // compile-time constant // finalよりも実行パフォーマンスが高い
<Flutter Dart>文字列の検索・置換
文字列の検索・置換
// 元の文字列 String greeting = 'My name is Bob.'; // Bobを含むか bool isBob = greeting.contains('Bob'); // Tomを含むか bool isTom = greeting.contains('Tom'); print(greeting); print(isBob); print(isTom); // output // My name is Bob. // true // false // 元の文字列のBobをTomに置換 greeting = greeting.replaceAll('Bob', 'Tom'); print(greeting); print(isBob); print(isTom); // output // My name is Tom. // true // false
<Flutter Dart>文字列の小文字・大文字変換
// 文字列 String title = 'Dart course'; // 文字列を小文字に変換 String lowerCaseTitle = title.toLowerCase(); // 文字列を大文字に変換 String upperCaseTitle = title.toUpperCase(); print(lowerCaseTitle); print(upperCaseTitle); // output // dart course // DART COURSE
<Flutter Dart>長い文字列に改行を入れる
下記のような長い文字列で改行を入れたい場合にどうするか?
print('My name is Bob.I am 18 years old.'); // output // My name is Bob.I am 18 years old.
改行する場合は改行位置に\nを入れる
print('My name is Bob.\nI am 18 years old.'); // output // My name is Bob. // I am 18 years old.
トリプルダブルクォーテーションで文字列をくくる
print( """ My name is Bob. I am 18 years old. """ ); // output // My name is Bob. // I am 18 years old.
<Flutter Dart>特殊文字のエスケープ
シングルクォーテーションでくくっている文字列内にシングルクォーテーションがあった場合にはエラーとなります。これはひとつの例であり、特殊文字が含まれる場合は対応が必要となります。
print('I'm Bob'); // output // Error: String starting with ' must end with '. print('I'm Bob');
文字列をダブルクォーテーションでくくる
print("I'm Bob"); // output // I'm Bob
バックスラッシュをつける
print('I\'m Bob'); // output // I'm Bob