Open1
「読みやすいコードのガイドライン」Dart ver

4-2-3 直和型への置き換え
Dartにおいて直和型はsealed classとして実現されている。
Kotlinとは違い、Dartはクラスのネストができないので、少し冗長な書き方になる。
単純にError Successといったクラス名にすると名前空間が重なりやすいので、プレフィックスをつけたほうが良い。
4-12
sealed class CoinStatusResponse {}
class CoinStatusResponseSuccess implements CoinStatusResponse {
CoinStatusResponseSuccess(this.coninStatus);
final CoinStatus coninStatus;
}
class CoinStatusResponseError implements CoinStatusResponse {
CoinStatusResponseError(this.errorType);
final ErrorType errorType;
}
enum CoinStatus { rich, poor }
enum ErrorType { network, server, client }
利用例
String makeStirng(CoinStatusResponse response) {
return switch (response) {
CoinStatusResponseSuccess(coninStatus: final status) => status.toString(),
CoinStatusResponseError(errorType: final error) => error.toString(),
};
}