겨울방학을 맞아 처음으로 새로운 언어를 공부해 보려고 합니다.
바로 'Dart'라는 언어인데요 이 언어는 2011년도에 나온것으로
비교적 최신 언어라고 볼 수 있습니다.
CHAPTER. 1 - DartPad를 이용하여 개발 환경 구축하기
웹 브라우저를 열고 https://dartpad.dev/? 에 접속합시다.
이렇게 별도의 개발환경을 설치하지않고 웹 브라우저를 통해서 Dart라는 언어를 공부할 수 있게 만들어놓은 사이트입니다. 당분간은 이 웹을 이용해 공부를 하게될 것 같습니다.
CHAPTER. 3 - 기초적인 숫자와 문자 다루기
문법 | 의미 | 주요특징 |
int | 정수 | -9,007,199,253,740,992 ~ 9,007,199,254,740,992 |
double | 실수 | 최대 1.7976931348623157e + 308 |
num | 숫자 | 정수 혹은 실수 |
String | 문자열 | 글자, 단어 혹은 문장 |
var(static) | 변수 | 정수, 실수, 문자열 등을 저장하며, 값의 변경 가능 (한번 값을 저장하고 나면, 같은 타입의 값을 저장해야 함) |
dynamic | 변수 | 정수, 실수, 문자열 등을 저장하며, 값의 변경 가능 (저장하는 값의 타입에 제한 없음) |
constant | 상수 | 처음 만드는 시점에 값을 설정하며, 값의 변경 불가능 |
[ $]
- print에서 문자열을 출력하도록 작성할 때 그 문자열 안에서 '$'기호로 시작하는 변수의 이름을 포함하면 해당 변수가 저장하는 값을 변수 이름의 위치에 출력하라는 의미가 된다.
- 만약 a*b의 값을 출력하고 싶으면 ${a*b}라고 입력하면 a와 b를 곱한 값을 출력해준다.
[final과 const의 차이는 무엇일까?]
- final 문법을 통해서 만든 상수는, 초기에 어떠한 값도 가지지 않는 상태로 만들어지고 나서 나중에 상수에 값을 저장할 수 있다. 반면 constant에서는 반드시 상수가 만들어지는 시점에서 상수가 저장할 값으로 초기화 해야한다.
- 프로그램의 시작 시점에서 상수에 저장할 값을 알 수 있다면 const를 사용하고, 프로그램이 시작된 후 계산에 의해서 상수 값을 만들어야 한다면 final을 사용한다.
[전체 코드]
void main() {
// Variable Case.1
int intTemp = 1;
print(intTemp);
double dblTemp = 2.2;
print(dblTemp);
num numIntTemp = 3;
print(numIntTemp);
num numDblTemp = 4.4;
print(numDblTemp);
String strTemp = "Hello!";
print(strTemp);
//Variable Case.2
var varInt = 1;
var varDouble = 2.2;
var varString = "Hello!";
print("$varInt $varDouble $varString");
print("RESULT[ $varInt, $varDouble, '$varString']");
//Variable Case.3
dynamic dynInt = 1;
dynInt = 3.3;
dynamic dynDouble = 2.2;
dynamic dynString = "Hello!";
print("$dynInt $dynDouble $dynString");
//Constant Case.1
const double cMathPi = 3.141592;
const cChangeRate = 1.3;
print("$cMathPi $cChangeRate");
//Constant Case.2
final String fFirstFruit;
fFirstFruit = "Banana";
final fSecondFruit = "Mango";
print("$fFirstFruit $fSecondFruit");
}
CHAPTER. 4 - 숫자 자세히 다루기
[주의해야할 점]
1. 컴퓨터에서 다룰 수 있는 숫자의 크기는 유한하다. Dart의 경우 정수의 크기는 웹 서비스를 개발하는 경우와 컴퓨터에서 바로 수행하는 경우에 다르다.
[연산자들]
연산자 | 의미 | 기능 |
+ | 더하기 | 두 값을 더함 |
- | 빼기 | 왼쪽 값에서 오른쪽 값을 뺌 |
* | 곱하기 | 두 값을 곱함 |
/ | 나누기 | 왼쪽 값을 오른쪽 값으로 나눔 |
~/ | 나누기 | 왼쪽 값을 오른쪽 값으로 나눈 몫을 정수로 계산 |
% | 나누기 | 왼쪽 값을 오른쪽 값으로 나눈 나머지를 계산 |
++ | 더하기 | 연산자가 적용된 값을 1만큼 증가 |
-- | 빼기 | 연산자가 적용된 값을 1만큼 감소 |
+= | 더하기 | 연산자 왼쪽의 값에 연산자 오른쪽의 값을 더함 |
-= | 빼기 | 연산자 왼쪽의 값에서 연산자 오른쪽의 값을 뺌 |
*= | 곱하기 | 연산자 값에 연산자 오른쪽의 값을 곱함 |
/= | 나누기 | 연산자 왼쪽의 값을 연산자 오른쪽의 값으로 나눔 |
[++ 연산자에서 주의할 점]
1. ++ 연산자가 변수 앞에 있을 경우: 다른 연산자보다 ++를 먼저 실행
number1 = number1 + 1
number3 = number3 + 1
//number3 = ++number1 + 1;과 동일
2. ++연산자가 변수 뒤에 있을 경우:
number4 = number2 + 1
number2 = number2 + 1
// number4 = number2++ + 1;과 동일
*--연산자도 동일
[전체 코드]
void main(){
num number1, number2; //의미없는 값이 들어가게 됨.
num tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
number1 = 3;
number2 = 3;
tmp1 = number1 + number2;
tmp2 = number1 - number2;
tmp3 = number1 * number2;
tmp4 = number1 / number2;
tmp5 = number1 ~/ number2;
tmp6 = number1 % number2;
num number3, number4;
number3 = ++number1 + 1;
number4 = number2++ + 1;
// number3 = --number1 + 1;
// number4 = number2-- + 1;
print('[1] $tmp1 $tmp2 $tmp3 $tmp4 $tmp5 $tmp5 $tmp6');
print('[3] $number3 $number4');
number1 = 3;
number1 += 1;
print('[5] $number1');
number1 = 3;
number1 -= 1;
print('[6] $number1');
number1 = 3;
number1 *= 2;
print('[7] $number1');
number1 = 6;
number1 ~/= 2;
print('[8] $number1');
number1 = 7;
number1 %= 2;
print('[9] $number1');
}
[출처]풀스택 개발이 쉬워지는 다트&플러터 - 이성원