Skip to content

Instantly share code, notes, and snippets.

@rikuTanide
Created October 12, 2017 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rikuTanide/5ed8a3b13b046be9562c1ef6df7822a6 to your computer and use it in GitHub Desktop.
Save rikuTanide/5ed8a3b13b046be9562c1ef6df7822a6 to your computer and use it in GitHub Desktop.
状態変数の読み込みと書き込みを局所化
class State {
bool aisatu = false;
int onigiriPrice = 100;
}
var state = new State();
void onMessage(String message) {
state = updateState(state, message);
}
State updateState(State _state, String message) {
switch (message) {
case "こんにちは":
return onAisatu(_state);
case "おにぎり3個ください":
return onOnigiriRequest(_state);
}
}
State onAisatu(State _state) {
print("こんにちは");
return new State()
..onigiriPrice = _state.onigiriPrice
..aisatu = true;
}
State onOnigiriRequest(State _state) {
if (_state.aisatu) {
var sum = _state.onigiriPrice * 3;
print("$sum 円です");
return new State()
..onigiriPrice = _state.onigiriPrice
..aisatu = false;
}
return _state;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment