Flutter, '아' 다르고 '어' 다른 Extension 키워트 활용 포맷팅 로직
새롭게 작성한 포스팅에서 구체적인 설명과 실제 적용 사례를 확인하실 수 있습니다😀
Extension
을 활용유저의 아이디의 최소 글자 수(최소 7자 이상)를 제한하는 클래스를 구현한다고 가정해 보자. String
Extension 사용 여부에 따라 아래와 같이 구분할 수 있다.
class UserIdValidation {
static bool isValidLenght(String str) {
return str.length >= 7 ? true : false;
}
}
class UserIdValidation {
static bool isValidLenght(String str) {
return str.length >= 7 ? true : false;
}
}
void main() {
UserIdValidation.isValidLenght("vkdl370528") // true
UserIdValidation.isValidLenght("Ximya") // false
}
extension UserIdValidation on String {
bool get isIdValidLength {
return this.length >= 7 ? true : false;
}
}
void main() {
"vkdl370528".isValidLenght // true
"Ximya".isValidLength // false
}
on
키워드를 통해 Extend 할 타입을 설정이번에는 두 개의 단어를 더하는 기능을 제공하는 Extension을 만들어보자.
extension StringExtension on String {
String concatWithSpace(String other) {
return '$this $other';
}
}
void main () {
"XimYa".concatWithSpace("Kim") // Ximya Kim
}
$
(dollarSign) 의 키워드로 참조하여 구분함.extension StringExtension on String {
String operator &(String other) => '$this $other';
}
void main() {
"Ximya" & "Kim" // Ximya Kim
}
operator
를 이용하여 좀 더 직관적으로 표현이 가능함.