Dart 문법

Dart 문법(3)

hamiric 2024. 10. 28. 14:18

## 해당 글은 강의를 들으면서 알고있던것을 적는게 아닌, 모르고 있던것을 알았을때 적어 놓은것임

 

< 함수형 프로그래밍 >

함수의 연속으로 프로그램을 구성하는 방식 (메서드 체이닝)

int number = -12345
var result = number.abs().toString().contains('3');
print(result); // true

 

  • 가변적인 데이터의 사용을 최소화하여 프로그램을 구성하는것이 좋다!
// 출력값이 항상 매개변수 (입력값) 에만 의존하게 하는게 좋다.
int multiply(int a, int b) {
  return a * b;
}
// 만일 함수 내부에서 값을 변경하는 명령형 프로그래밍 방식
int number = 0;

void increaseNumber() {
  number += 1;
}

void main() {
  print(number); // 0
  increaseNumber();
  print(number); // 1
}

 

 

형변환 함수 (Type Casting Function)

  • toString
// 값을 String 타입으로 변환한 값을 반환
int a = 41;

var a1 = a.toString();
print(a1);  // 41
print(a1.runtimeType);  // String

 

  • parse / tryParse
// String 타입의 값을 해당 타입으로 변환한 값을 반환
// 다만 parse의 경우 형변환이 실패하면 오류가 발생한다.
String number = '123';
var result = int.parse(number);

print(result); // 123
print(result.runtimeType); // int

// tryParse의 경우 형변환이 실패하면 null 을 반환한다.
String invalidNumber = 'abcd';
var result = int.tryParse(invalidNumber);

print(result); // null
// 변환할 수 있는 타입들은 여러가지가 있다.

int.parse
double.parse
bool.parse
DateTime.parse
Duration.parse
// 등등..

 

  • toList, toSet
// 특정 컬렉션 타입에 값을 List,Set 형태로 바꾸어 변환
// 컬렉션 타입은 List,Set,Map,Iterable 등등이 있다.
// Map은 컬렉션 타입 중에서도 특별한 형태이기 때문에, 해당 형변환들을 적용하지 못함에 주의!

Iterable<String> fruitIter = {'사과', '오렌지', '수박'};

var fruitList = fruitIter.toList();
print(fruitList); // [사과, 오렌지, 수박]
print(fruitList.runtimeType); // List<String>

var fruitSet = fruitList.toSet();
print(fruitSet); // {사과, 오렌지, 수박}
print(fruitSet.runtimeType); // Set<String>

 

  • asMap
// 특정 컬렉션 타입의 값을 Map 형태로 변환하여 반환
// List를 Map으로 형변환 시킬 경우, index값을 key로, list 값을 value 로 하는 Map이 반환된다.

List<String> fruitList = ['사과', '오렌지', '수박'];
var fruitMap = fruitList.asMap();
print(fruitMap); // {0: 사과, 1: 오렌지, 2: 수박}

// Set의 경우에는 asMap을 적용할 수 없다.
// Set을 Map으로 만드려면, toList를 통해 List 형태로 형변환 한 후, asMap으로 형변환 해주면 된다.
Set<String> fruitSet = {'사과', '오렌지', '수박'};
var fruitList = fruitSet.toList();
var fruitMap = fruitList.asMap();
print(fruitMap); // {0: 사과, 1: 오렌지, 2: 수박}

 

'Dart 문법' 카테고리의 다른 글

Dart 문법(6)  (0) 2024.11.04
Dart 문법(5)  (0) 2024.11.01
Dart 문법(4)  (0) 2024.10.28
Dart 문법(2)  (0) 2024.10.28
Dart 문법 (1)  (0) 2024.10.25