Typedefs

Dart์—์„œ ๋ฌธ์ž์—ด๊ณผ ์ˆซ์ž๊ฐ€ ๊ฐ์ฒด์ธ๊ฒƒ์ฒ˜๋Ÿผ ํ•จ์ˆ˜๋„ ๊ฐ์ฒด ์ด๋‹ค. typedef ๋˜๋Š” function-type alias๋Š” ํ•จ์ˆ˜ ํƒ€์ž…์— ํ•„๋“œ ๋ฐ ๋ฐ˜ํ™˜ ํƒ€์ž…์„ ์„ ์–ธ ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์„ ์ œ๊ณตํ•œ๋‹ค. typedef๋Š” ํ•จ์ˆ˜ ํƒ€์ž…์ด ๋ณ€์ˆ˜์— ์ง€์ • ๋  ๋•Œ ํƒ€์ž… ์ •๋ณด๋ฅผ ๋ณด์œ ํ•œ๋‹ค.

typedef๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ƒ๊ฐํ•ด ๋ณด๊ฒ ๋‹ค.

class SortedCollection {
  Function compare;

  SortedCollection(int f(Object a, Object b)) {
    compare = f;
  }
}

// ์ดˆ๊ธฐํ™”, ๊นจ์ง„ ๊ตฌํ˜„.
int sort(Object a, Object b) => 0;

void main() {
  SortedCollection coll = SortedCollection(sort);

  // ์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” ์ „๋ถ€๋Š” compare๋Š” ํ•จ์ˆ˜๋ผ๋Š” ๊ฒƒ์ธ๋ฐ,
  // ํ•จ์ˆ˜์˜ ํƒ€์ž…์€ ๋ฌด์—‡์ผ๊นŒ์š”?
  assert(coll.compare is Function);
}

compare ์— f๋ฅผ ๋Œ€์ž…ํ•˜๋ฉด ํƒ€์ž… ์ •๋ณด๊ฐ€ ์œ ์‹ค๋œ๋‹ค. f์˜ ํƒ€์ž…์€ (Object, Object)โ†’int (์—ฌ๊ธฐ์„œ โ†’๋Š” ๋ฐ˜ํ™˜์„ ์˜๋ฏธ)์ด์ง€๋งŒ, compare์˜ ํƒ€์ž…์€ Function์ด๋‹ค. ๋ช…์‹œ์  ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ณ  ํƒ€์ž… ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๊ฐœ๋ฐœ์ž์™€ ๋„๊ตฌ ๋ชจ๋‘๊ฐ€ ํ•ด๋‹น ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Note: ํ˜„์žฌ typedef๋Š” ํ•จ์ˆ˜ ํƒ€์ž…์œผ๋กœ ์ œํ•œ๋œ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ๋ณ€ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•œ๋‹ค.

typedef๋Š” ๋‹จ์ˆœํžˆ ๋ณ„์นญ์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ํ•จ์ˆ˜์˜ ํƒ€์ž…์„ ๊ฒ€์‚ฌ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. ์˜ˆ:


์ด์ „: ๊ฒฉ๋ฆฌ (Isolates)arrow-up-right

๋‹ค์Œ: ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ (Metadata)arrow-up-right

๋ฌธ์„œ ๋ณ€๊ฒฝ ์ด๋ ฅ

2019๋…„ 5์›” 15์ผ: ์ฒซ ์ž‘์„ฑ.

Last updated