앱을 개발할때 테스트 환경에서 먼저 검수가 끝나고 난 이후 실제 배포버젼으로 환경으로 바꾸어 테스트를 한다. 이때, 검수하는 환경이 테스트 환경인지 배포환경인지 구분하기 위해 환경 변수를 직접 선언하여 사용할 수 있다.
ex) flutter run --dart-define=SOME_VAR=SOME_VALUE, --dart-define=ANY_VAR= ANY_VALUE
앱 내에서 사용할때는 다음과 같이 변수값을 불러 사용한다.
const A = String.fromEnvironment(SOME_VAR,defaultValue : 'AA');
당연한 말이겠지만 정의한 변수명값을 통해 해당 환경변수값을 불러올수 있다. 혹시나 해당 변수명으로 정의된 값이 없는 경우를 위해 defaultValue값을 지정할수 있다.
1) whereType<T> => list안에 여러가지 type의 데이터가 있는 경우, 특정 type만 따로 추출하여 가질 수 있다.
예시)
```
void main() {
var mixList = [1, "a", 2, "b", 3, "c", 4, "d"];
var num = mixList.whereType<int>();
print(num); // (1, 2, 3, 4)
}
```
2) any => list안에 제시한 조건을 만족하는 구성요소가 하나라도 있을 경우 true를 반환한다.
예시)
void main() {
var mixList = ["a","b","c","d"];
print(mixList.any((e) => e.contains('a'))); //true
}
3) every => list안에 모든 구성요소들이 제시한 조건을 만족하는 경우 true를 반환
void main() {
var mixList = ["a","b","c","d"];
print(mixList.every((e) => e.contains('a'))); //false
}
4) singleWhere => List 구성요소 중 제시한 조건을 부합하는 첫번째 요소를 반환한다.
만약 조건을 부합하는 구성요소가 2개 이상인 경우에는 error를 반환한다.
이때는 firstWhere를 사용해야 한다.
void main(){
var sList = [1, 2, 3, 3, 4];
print(sList.singleWhere((i) => i == 3));
// Bad state: Too many elements - 조건을 만족하는 3이 두개 이상 있기 때문
print(sList.firstWhere((i) => i == 3)); // 3
}