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

๋ชฉ๋ก๐Ÿ“ฑFlutter/Dart (5)

ruriruriya

[Dart] async์™€ await๋กœ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Dart ์–ธ์–ด์—์„œ async์™€ await๋Š” ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค์›Œ๋“œ์ด๋‹ค.ํŠนํžˆ ๋„คํŠธ์›Œํฌ ์š”์ฒญ, ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ, ํƒ€์ด๋จธ ๋“ฑ์˜ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.๐Ÿ’ก ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€?- ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์ž‘์—… ๋“ฑ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ, ํ•ด๋‹น ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ์ž‘์—…์ด ๋ฉˆ์ถ”์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ฐฉ์‹- Dart์—์„œ๋Š” Future ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.(Future : ๋น„๋™๊ธฐ ์ž‘์—…์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด, ๊ฒฐ๊ณผ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ ธ์ค€๋‹ค.) 1. async์™€ await ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•- async : ํ•จ์ˆ˜์— ๋น„๋™๊ธฐ ์ž‘์—…์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋œปํ•˜๋Š” ํ•จ์ˆ˜๋กœ, ํ•ญ์ƒ Future ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.- await : ๋น„๋™๊ธฐ ์ž‘์—…(Fu..

๐Ÿ“ฑFlutter/Dart 2024. 12. 18. 15:42
[Dart] ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ธฐ๋ณธ๊ฐ’ ์ง€์ •(Default Parameters)

Dart ์–ธ์–ด์—์„œ ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•ด์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.1. ๊ธฐ๋ณธ๊ฐ’ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•˜๋ ค๋ฉด ์ค‘๊ด„ํ˜ธ '{}'๋กœ ๊ฐ์‹ผ ์ด๋ฆ„ ๊ธฐ๋ฐ˜ ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜ ๋˜๋Š” ๋Œ€๊ด„ํ˜ธ'[]'๋กœ ๊ฐ์‹ผ ์œ„์น˜ ๊ธฐ๋ฐ˜ ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜ ์ค‘ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.๊ธฐ๋ณธ๊ฐ’์„ ์ง€์ •ํ•˜๋ ค๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ค‘๊ด„ํ˜ธ ๋˜๋Š” ๋Œ€๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์„œ ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด ๋œ๋‹ค.๊ทธ๋ž˜์„œ ํ˜ธ์ถœ ์‹œ ์ƒ๋žต๋œ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์„ค์ •๋œ ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.void ํ•จ์ˆ˜์ด๋ฆ„(ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋ฆ„, {ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋ฆ„ = ๊ธฐ๋ณธ๊ฐ’}) { // ํ•จ์ˆ˜ ๋ณธ๋ฌธ}void greet(String name, {String greeting = "Hello"}) { print("$greeting, $name!");}void main() { greet("..

๐Ÿ“ฑFlutter/Dart 2024. 12. 18. 14:59
[Dart] Null Safety์˜ ๊ฐœ๋…๊ณผ ์‚ฌ์šฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  late ํ‚ค์›Œ๋“œ

Dart ์–ธ์–ด์—์„œ๋Š” Null Safe๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ๋Š”๋ฐ์ด๋Š” ๋ณ€์ˆ˜์— null ๊ฐ’์„ ํ—ˆ์šฉํ• ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค.์ด ๊ธฐ๋Šฅ์€ NullPointerExcaption ๋“ฑ๊ณผ ๊ฐ™์€ null๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค.1. Dart ๋ณ€์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ null์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.์ฆ‰, null์„ ํ—ˆ์šฉํ•˜๋Š” ํ‘œ์‹œ๊ฐ€ ์—†๋‹ค๋ฉด ์ ˆ๋Œ€. null์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.null์„ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐํƒ€์ž… ๋’ค์— '?' ๋ฌผ์Œํ‘œ๋ฅผ ๋ถ™์—ฌ์ค€๋‹ค.(์ฝ”ํ‹€๋ฆฐ๋„ ๋น„์Šทํ•œ ๊ฐœ๋…์ด์ง€๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ๋ฒ•์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ๋Š” ๋“ฏ ํ•˜๋‹ค.)Null์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜ ์˜ˆ์‹œvoid main() { int number = 10; // null์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜ print(number); // number = null; // ์˜ค๋ฅ˜! null ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์—†..

๐Ÿ“ฑFlutter/Dart 2024. 12. 18. 13:36