[Dart] Dart ๋ฌธ๋ฒ ์ ๋ฆฌ
Final
๊ณผ const
final
๊ณผ const
ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธํ๋ฉด ํ ๋นํ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค. ๋๋ค ์์๋ฅผ ์ ์ธํ ๋ ์ฌ์ฉํ์ง๋ง ์ฐจ์ด์ ์ const
๋ complie-time
์ ์์๋ฅผ ์ค์ ํ๋ฉฐ final
์ runtime
์์ ๊ฒฐ์ ๋๋ ๊ฐ๋ ์์๋ก ์ค์ ํ ์ ์๋ค.
|
|
const
๋ complie-time์ ์ฌ์ฉํ ์์๋ฅผ ์ ์ธํ๋ค. ๋ง์ฝ ํด๋์ค ๋ ๋ฒจ์์ const
๋ฅผ ์ฌ์ฉํ ๋๋ static const
๋ฅผ ์ฌ์ฉ๋ฉด ๋๋ค. const๋ก ์ ์ธํ ์์์ ๋ํ ์ฐ์ ์ฐ์ฐ ๋ฑ์ ๊ฒฐ๊ณผ ๋ํ const ์์์ฌ์ผ ํ๋ค.
|
|
const
ํค์๋๋ ์์ ๋ณ์๋ฅผ ์ ์ธํ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ ์์ ๊ฐ์ ์์ฑํ๋ ์์ฑ์ ์ ์ธ์๋ ์ฌ์ฉํ ์ ์๋ค.
|
|
final
ํค์๋์ ๊ฒฝ์ฐ ๊ฐ์ฒด๋ ์์ ํ ์ ์์ง๋ง ํด๋น ํ๋๋ ๋ณ๊ฒฝํ ์ ์๋ค. ๊ทธ๋ฌ๋ const
์ ๊ฒฝ์ฐ ๊ฐ์ฒด์ ํ๋๋ฅผ ๋ณ๊ฒฝ ํ ์ ์๋ค.
|
|
Typedefs
typedef
๋ ํ์
์ ๋ํ ๋ณ์นญ์ ๋ํ๋ด๋ ํค์๋์ด๋ฉฐ ํ์
์ ์ฐธ์กฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค. ์๋๋ IntList
๋ผ๋ ํ์
๋ณ์นญ์ ์ ์ธํ๊ณ ์ฌ์ฉํ๋ ์์ ์ด๋ค.
|
|
ํ์ ๋ณ์นญ์ ํ์ ํ๋ผ๋ฏธํฐ์ ํจ๊ป ์ฌ์ฉ ํ ์ ์๋ค.
|
|
ํ์ ๋ณ์นญ ๋์ inline function types์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค๊ณ ํ๋ค.
|
|
Asynchronous programming
Future
Future
๋ ๋น๋๊ธฐ ์์
์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ฉฐ ์๋ฃ๋์ง ์์ ๋๋ ์๋ฃ๋จ์ ๋ ๊ฐ์ง ์ํ๋ฅผ ๊ฐ์ง ์ ์๋ค.
- Future
๋ ํ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ๋ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค. Future
์์ ๋ฆฌํด๊ฐ์ด ์์ ๊ฒฝ์ฐ ํ์ ์Future<void>
์ด๋ค.- future์ ์ํ ๊ฐ์
uncompleted
๋๋completed
๋ ๊ฐ์ง ์ค ํ๋ ์ด๋ค. - future ๊ฐ์ ๋ฐํํ๋ ํจ์๋ฅผ ํธ์ถํ๋ฉด ์ํํ ์์
์ ๋๊ธฐ์ด์ ๋ฃ๊ณ
uncompleted
๋ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ๋ค. - future ์์ ์ด ์๋ฃ๋๋ฉด future ํน์ ์ค๋ฅ์ ํจ๊ป ์๋ฃ๋๋ค.
|
|
Console
๊ณ์ฐ์์ : 1 + 1
ํจ์ ์๋ฃ
๊ณ์ฐ์์ : 2 + 2
ํจ์ ์๋ฃ
๊ณ์ฐ์๋ฃ : 1 + 1 = 2
๊ณ์ฐ์๋ฃ : 2 + 2 = 4
Working with futures: async and await
async ํจ์๋ ์ฒซ ๋ฒ์งธ await
ํค์๋๊น์ง ๋๊ธฐ์ ์ผ๋ก ์คํ๋๋ค. async ํจ์ ๋ด์ ์ฒซ๋ฒ์งธ await
ํค์๋ ์์ ๋ชจ๋ ์ฝ๋๋ ์ฆ์ ์คํ๋๋ค.
- async : ํจ์ ์์
async
ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ ํจ์๋ก ํํํ ์ ์๋ค. - awiat :
await
ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ ํจ์์ ์๋ฃ๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.await
ํค์๋๋async
ํจ์ ๋ด์์๋ง ๋์ํ๋ค.
|
|
Console
๊ณ์ฐ์์ : 1 + 1
๊ณ์ฐ์์ : 2 + 2
๊ณ์ฐ์๋ฃ : 1 + 1 = 2
ํจ์ ์๋ฃ
๊ณ์ฐ์๋ฃ : 2 + 2 = 4
ํจ์ ์๋ฃ
Stream
Dart์์๋ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ Future์ Stream ๋ ๊ฐ์ง ํด๋์ค๋ฅผ ์ ๊ณตํ๋ค.
- stream์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฐ์์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ค.
Stream API
์์await for
๋๋listen()
์ ์ฌ์ฉํ์ฌ ์คํธ๋ฆผ์ ์ฒ๋ฆฌ ํ ์ ์๋ค.- ์คํธ๋ฆผ์๋ single subscription ๊ณผ broadcast ๋๊ฐ์ง ์ข ๋ฅ๋ฅผ ์ ๊ณตํ๋ค.
|
|
Console
Listener 2 : 1
Listener 1 : 2
Listener 2 : 3
Listener 1 : 4
Listener 2 : 5
|
|
Console
calculate(2) : 0
calculate(4) : 0
calculate(2) : 2
calculate(4) : 4
calculate(2) : 4
calculate(4) : 8
calculate(2) : 6
calculate(4) : 12
calculate(2) : 8
calculate(4) : 16