πŸ“±Flutter/Dart

[Dart] λ³€μˆ˜μ˜ 데이터 νƒ€μž…μ„ 확인할 λ•Œ μ‚¬μš©ν•˜λŠ” is μ—°μ‚°μž ν‚€μ›Œλ“œ

루리야ㅑ 2024. 12. 18. 13:51
λ°˜μ‘ν˜•

Dartμ—μ„œ is μ—°μ‚°μžλŠ” λ³€μˆ˜μ˜ 데이터 νƒ€μž…μ„ 확인할 λ•Œ μ‚¬μš©ν•˜λŠ” ν‚€μ›Œλ“œμ΄λ‹€.
이 λ³€μˆ˜κ°€ νŠΉμ • νƒ€μž…μΈμ§€ λ¬»λŠ” 데 μ‚¬μš©λœλ‹€.

κ·Έλž˜μ„œ νƒ€μž…μ„ μ•ˆμ „ν•˜κ²Œ ν™•μΈν•˜κ³  μ²˜λ¦¬ν•  λ•Œ μ•„μ£Ό μœ μš©ν•œ κΈ°λŠ₯이닀.

1. κΈ°λ³Έ μ‚¬μš©λ²•

- variable : 확인할 λ³€μˆ˜
- Type : ν™•μΈν•˜κ³ μž ν•˜λŠ” 데이터 νƒ€μž…
- κ²°κ³Ό : true λ˜λŠ” false 

"variable λ³€μˆ˜κ°€ 이 Type이 λ§žλ‚˜μš”?"

variable is Type

 

μ˜ˆμ‹œ

void main() {
  var name = "홍길동";
  var age = 25;

  print(name is String); // true (name은 String νƒ€μž…)
  print(age is int);     // true (ageλŠ” int νƒ€μž…)
  print(name is int);    // false (name은 String νƒ€μž…μ΄λ―€λ‘œ intκ°€ μ•„λ‹˜)
}

 

2. is! μ—°μ‚°μž

is! μ—°μ‚°μžλŠ” λ°˜λŒ€λ‘œ
'이 νƒ€μž…μ΄ μ•„λ‹Œκ°€μš”?'

- μ•„λ‹ˆλΌλ©΄ 'true', νƒ€μž…μ΄ λ§žλ‹€λ©΄ 'false'

void main() {
  var value = 3.14;

  print(value is! int);  // true (valueλŠ” int νƒ€μž…μ΄ μ•„λ‹˜)
  print(value is! double); // false (valueλŠ” double νƒ€μž…)
}

 

3. is와 쑰건문

isλ₯Ό 쑰건문 μ•ˆμ—μ„œ μ‚¬μš©ν•˜λ©΄, νŠΉμ •νƒ€μž…μΌ λ•Œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•  수 μžˆλ‹€.

주둜 μ‚¬μš©ν•  λ•Œ λ¨Όμ € dynamic으둜 λ³€μˆ˜ νƒ€μž…μ„ μ„€μ •ν•˜κ³ 
μ•„λž˜ μ‘°κ±΄λ¬Έμ—μ„œ νƒ€μž…μ„ ν™•μΈν•˜λ©΄μ„œ λ‹€μ–‘ν•œ νƒ€μž…μ„ μ²˜λ¦¬ν•  λ•Œ μ‚¬μš©ν•œλ‹€.

void printType(dynamic value) {
  if (value is String) {
    print("이 값은 λ¬Έμžμ—΄μž…λ‹ˆλ‹€: $value");
  } else if (value is int) {
    print("이 값은 μ •μˆ˜μž…λ‹ˆλ‹€: $value");
  } else {
    print("이 값은 λ‹€λ₯Έ νƒ€μž…μž…λ‹ˆλ‹€.");
  }
}

void main() {
  printType("Hello");  // 좜λ ₯: 이 값은 λ¬Έμžμ—΄μž…λ‹ˆλ‹€: Hello
  printType(42);       // 좜λ ₯: 이 값은 μ •μˆ˜μž…λ‹ˆλ‹€: 42
  printType(3.14);     // 좜λ ₯: 이 값은 λ‹€λ₯Έ νƒ€μž…μž…λ‹ˆλ‹€.
}

이런 μ‚¬μš©λ²•μ˜ νŠΉμ§•μ€,

1. μœ μ—°ν•œ ν•¨μˆ˜ μž‘μ„±μ΄ κ°€λŠ₯ν•˜κ³ 
2. νƒ€μž… μ•ˆμ •μ„± κ²€μ‚¬λ‘œ νŠΉμ • νƒ€μž…μ˜ 데이터λ₯Ό μ²˜λ¦¬ν•  λ•Œ, μ‹€ν–‰ 전에 νƒ€μž…μ„ ν™•μΈν•΄μ„œ 였λ₯˜λ₯Ό λ°©μ§€ν•œλ‹€.
3. UI Flutterμ—μ„œ μœ„μ ― νƒ€μž…μ„ ν™•μΈν•˜κ±°λ‚˜, νŠΉμ • 데이터 νƒ€μž…μ— 따라 UIλ₯Ό λ³€κ²½ν•  λ•Œ μœ μš©ν•˜λ‹€.(UI μš”μ†Œ λΆ„κΈ° 처리)

λ°˜μ‘ν˜•
λŒ“κΈ€μˆ˜0