Open5
Dart関連の学習したこと
Dartでのつらつらとどういう新しいことと学んだかつらつら備忘録として書いていきます
シングルトンの書き方
class Singleton {
static final Singleton _cache =
Singleton._internal();
factory Singleton() => _cache;
Singleton._internal();
}
ストアのURLを取ってくる
短縮URLで再現
class InAppURLs {
static String get storeURL {
if (Platform.isAndroid) {
return 'https://play.google.com/store/apps/details?id=(アプリID)';
} else if (Platform.isIOS) {
return 'https://apps.apple.com/jp/app/id(アプリID)';
} else {
return '';
}
}
}
適当な単語が連続する文字列生成
final longStr = List.generate(1, (index) => '長いテキスト')
.toList()
.reduce((string1, string2) => string1 + string2);
引数の指定方法
Null Safety(Dart 2.12.0バージョン以降)
通常
void hogePrint(String hoge){
print(hoge);
}
void main() {
hogePrint('hoge');
}
名前付きパラメーター
- 引数指定必須
void hogePrint({required String str}){
print(str);
}
void main() {
hogePrint(str: 'hoge');
}
- デフォルトパラメーターあり
void hogeOrHugaPrint({String str = 'huga'}){
print(str);
}
void main() {
hogeOrHugaPrint(str: 'hoge'); // hoge
hogeOrHugaPrint(); // huga
}
- Null指定
void hogePrint({String? str}){
print(str);
}
void main() {
hogePrint(); // null
}
オプショナルパラメーター
void hogeOrHugaPrint([String? hoge, String huga = 'huga']){
print(hoge); // hoge
print(huga); // huga
}
void main() {
hogeOrHugaPrint('hoge');
}
- required はつけることはできない
- 名前付きであり、オプショナルパラメーターであるという2重指定は無理?
- 引数はNullかデフォルトパラメーターを指定する
- オプショナルパラメーターと名前付きの引数を両方用意するのは厳しそう?