๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[Dart] ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” is ์—ฐ์‚ฐ์ž ํ‚ค์›Œ๋“œ ๋ณธ๋ฌธ

๐Ÿ“ฑ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 ์š”์†Œ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ)

๋ฐ˜์‘ํ˜•