์ค๋๋ง์ ํฌ์คํ ์ ์์ฑํด ๋ณธ๋ค.(๊ฑฐ์ ํ ๋ฌ๋ง)
์ต๊ทผ์ ํ์ฌ์ ์ทจ์งํด์ ๋ฐฐ์์ผ ํ ๊ฒ๋ค์ด ๋ง์์ ๋ธ๋ก๊ทธ ๊ด๋ฆฌ์ ์ํํ์๋ค.
ํ์ฌ์์๋ flutter๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๊ณ ์๊ธฐ์ flutter์ ์ฌ์ฉํ๋ ์ธ์ด์ธ dart ๋ฌธ๋ฒ๋ถํฐ ์ฒ์๋ถํฐ ๋ฐฐ์๋ณด๋๋ก ํ์.
๊ฑฐ๋์ ๋ฏธํ๊ณ ๋ฐ๋ก ์์๋ณด๋๋ก ํ๊ฒ ๋ค.
1. Dart ํ๋ก๊ทธ๋๋ฐ ๊ท์น
๋จผ์ ๊ฐ๋จํ๊ฒ dart ํ๋ก๊ทธ๋๋ฐ ๊ท์น์ ์์๋ณด์.
- ์ฝ๋๋ ์์์ ์๋๋ก ์์๋๋ก ์ํ๋๋ค
- ์ฝ๋๊ฐ ๋๋๋ฉด ์ธ๋ฏธ์ฝ๋ก (;)์ ๋ถ์ธ๋ค.
์์ ๊ท์น๋ค ๋ ๋ค ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค์ ๊ท์น๊ณผ ์ ์ฌํ๊ธฐ ๋๋ฌธ์ ํฌ๊ฒ ์ ๊ฒฝ ์ธ ๋ถ๋ถ์ ์๋ค.
2. ๋ณ์ ์ ์ธ
๋ณ์ ์ ์ธ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค.
var a = 'immgga';
๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ ์ ์๋ค.(์์ ์ฝ๋๋ string ํ์ ์ ๋ณ์๋ฅผ ์ ์ธํ ๊ฒ์ด๋ค.)
๋ณ์ ํ์ ์ ๋ช ํํ ํ ์ ์์ ๋์๋ var๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํด์ ์ ์ธํ ์ ์๋ค.
๋ค์์ผ๋ก๋ ํ์ ์ ์ง์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ณ์๋ฅผ ์ ์ธํด ๋ณด๊ฒ ๋ค.
int intVariable = 10;
double doubleVariable = 10.0;
bool boolVariable = true;
String stringVariable = 'hello';
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์๋ฃํ 4๊ฐ๋ฅผ ๋ณ์๋ก ์ ์ธํด ๋ณด์๋ค.
string ๋ณ์๋ฅผ ์ ์ธํ ๋์๋ s๋ฅผ ๋๋ฌธ์๋ก ์จ์ผ ํ๋ค๋ ์ ๋ง ์ฃผ์ํ๋ฉด ๋๊ฒ ๋ค.
์ด์ ์ ์ธํ ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํด ๋ณด๊ฒ ๋ค.
a = 'tistory';
๋งจ ์์ ์ ์ธํ a ๋ณ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํ ์ ์๋ค.
ํ์ ์ ์ง์ ํ ๋ณ์๋ค๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค(๋ค๋ฅธ ํ์ ์ผ๋ก ๋ณ๊ฒฝํ๋ ค๊ณ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฑด ๋ชจ๋ฅด๋ ์ฌ๋์ ์๊ฒ ์ง?)
๋ง์ฐฌ๊ฐ์ง๋ก var ํค์๋๋ก ์ ์ธํ ๋ณ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ์๋ฃํ์ผ๋ก ๋ณ๊ฒฝํ๋ ค๊ณ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒ์ด๋ค.
๋ณ์์ ๋ฐ์ดํฐ๊ฐ ๋ค์ํ ํ์ ์ผ๋ก ๋ณ๊ฒฝ๋์ด๋ ์๊ด์์ ๋์๋ dynamic ํค์๋๋ก ๋ณ์๋ฅผ ์ ์ธํ ์ ์๋ค.
dynamic dynamicVariable = '10';
dynamicVarialbe = 10; // ์ค๋ฅ ์๋จ
์ฒ์์๋ string์ผ๋ก ์ ์ธํ์์ง๋ง int ๋ฐ์ดํฐ๋ก ๋ณ๊ฒฝํ์ฌ๋ ์ ํ ๋ฌธ์ ๋์ง ์๋๋ค.
ํ์ง๋ง ํ์ ๋ณ๊ฒฝ์ ์์ ๋๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋์ค์ flutter๋ฅผ ๊ฐ๋ฐํ ๋ dynamic ํค์๋๋ฅผ ๋จ๋ฐํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ์
๋ณ์ ํ์ ์ ์ง์ ์ง์ ํด ์ฃผ๋ ๊ฒ์ด ์ข๋ค.
๋ง์ง๋ง์ผ๋ก ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ๋ณ์ ์ ์ธ์ ํด๋ณด๊ฒ ๋ค.
final int finalVariable = 10;
const int constVariable = 10;
final, const ํค์๋๋ก ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ๋ณ์๋ฅผ ๋ง๋ค ์ ์๋ค.
ํ์ ๋ช ์(int)๋ ์ ํด์ค๋ ๋ฌธ์ ๋ ์์ง๋ง ํด์ฃผ๋ ๊ฒ ์ข๋ค.
final๊ณผ const์ ์ฐจ์ด๋ final์ ์ฝ๋๊ฐ ์คํ๋๋ฉด ๊ฐ์ด ์ ์ฅ๋์ด์ ๋ณ๊ฒฝํ ์ ์๊ณ ,
const๋ ์ฝ๋ ์คํ ์ ๋ถํฐ ๊ฐ์ด ์ ์ฅ๋์ด์ ๋ณ๊ฒฝํ ์ ์๋ค๋ ์ฐจ์ด๊ฐ ์๋ค.
๋ณด๋ค ์์ธํ ์ฌํญ์ ์๋์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํด ๋ณด๋๋ก ํ์.
https://jong99.tistory.com/166
[Dart, Flutter] Const vs. Final (Const์ Final์ ์ฐจ์ด์ )
Final VS Const Final๊ณผ Const๋ ๋ ๋ค ๋ณ๊ฒฝํ ์ ์๋ ์์ฑ์ ๋ปํ๋ค. void main() { const int myConst = 2; final int myFinal = 3; myConst = 4; // error ๋ฐ์, Const ๋ณ์์๋ ๊ฐ์ ํ ๋นํ ์ ์๋ค. myFinal = 6; // error ๋ฐ์, Final
jong99.tistory.com
3. dart์ null safety
dart์ ๋ kotlin์ฒ๋ผ null ์์ ์ฑ์ ์ ๊ณตํ๋ค.
null ํ์ฉ์ด ๋๋ ๋ณ์๋ฅผ ์์ฑํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
String? stringNullableVariable = null;
String ํค์๋ ๋ค์ ? ๊ธฐํธ๋ฅผ ๋ถ์ด๋ฉด ๋๋ค.
๋ณ์ ํค์๋ ๋ค์ ? ๊ฐ ๋ถ์ ๋ณ์๋ null์ด ๋ค์ด๊ฐ ์ ์์ง๋ง ? ๊ธฐํธ๊ฐ ์๋ ๋ณ์์๋ ๋ค์ด๊ฐ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
ํ์ฌ ๋ณ์ ๋ฐ์ดํฐ๊ฐ null์ด ์๋์ ๋จ์ ์ง์ผ๋ ค๋ฉด ! ๊ธฐํธ๋ฅผ ๋ณ์ ๋ค์ ๋ถ์ด๋ฉด ๋๋ค.
print(stringNullableVariable!); // stringNullableVariable์ null์ด ์๋๋ค.
์์ ๊ฐ์ด null์ด ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ ์ ์๋ค.
ํ์ง๋ง ! ๋ฅผ ๋ถ์ธ ๋ณ์๊ฐ null์ด๋ฉด exception์ด ๋ฐ์ํ๋ค.
dart์ nullable์ kotlin์ nullable๊ณผ ํก์ฌํ ์ ์ด ๋ง๋ค.
์ ๋ฆฌ
- flutter๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์ด์ ์ dart๋ฅผ ๊ณต๋ถํ๊ณ ์ด์ ์ผ ๋ธ๋ก๊ทธ๋ฅผ ์ฌ๋ฆฌ๋๋ฐ, ํ์ ๊ธฐ์ค์๋ c์ธ์ด๋ณด๋ค๋ ๊ฐ๊ฒฐํ๊ณ kotlin ๋ณด๋ค๋ ๋ณต์กํ ์ธ์ด ๊ฐ๋ค.
- ์ถํ์๋ flutter๋ฅผ ๊ณต๋ถํ ๋ด์ฉ์ ๋ธ๋ก๊ทธ๋ก ์ฌ๋ ค๋ณผ ๊ณํ์ด๋ค.
- dart ๋ฌธ๋ฒ ํฌ์คํ ์ ๊ณ์ ์ฌ๋ผ๊ฐ ์์ ์ด๋ค.
์ฐธ๊ณ ํ ๋งํ ๊ฐ์
https://www.inflearn.com/course/dart-%EC%96%B8%EC%96%B4-%EC%9E%85%EB%AC%B8
[์ง๊ธ ๋ฌด๋ฃ] [์ฝ๋ํฉํ ๋ฆฌ] [์ ๋ฌธ] Dart ์ธ์ด 4์๊ฐ๋ง์ ์์ ์ ๋ณต ๊ฐ์ - ์ธํ๋ฐ
์ด ๊ฐ์๋ฅผ ํตํด Dart ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๋ฉด Flutter๋ฅผ ์์ํ ์ ์์ ์ ๋์ ์์ค์ผ๋ก์ ์ ๊ทธ๋ ์ด๋๊ฐ ๊ฐ๋ฅํฉ๋๋ค!, ๊ฐ๋ฐ์ ๋ํด ์๋ฌด ๊ฒ๋ ๋ชฐ๋ผ๋ ๊ด์ฐฎ์์ ๐โ๏ธ๋ด ์์ผ๋ก ์ฑ ๋ง๋ค๊ธฐ ์ฒซ๊ฑธ์! Dart
www.inflearn.com