Dart 기초
Hello World
void main() {
for (int i = 0; i < 5; i++) {
print('hello ${i + 1}');
}
}
변수 선언
void main() {
var name = 'soobin';
print(name);
name = 'judy';
print(name);
}
변수 타입
void main() {
dar
// integer
int num = 10;
int num2 = 5;
print(num + num2);
print(num - num2);
print(num / num2);
print(num * num2);
// double
double num3 = 2.5;
// boolean
bool isTrue = true;
bool isFalse = false;
// String
String name = 'soobin';
String name2 = 'judy';
print(name + ' ' + name2);
// var
var name3 = 'yerin';
var number = 23;
print(name3.runtimeType);
print('${name} ${name2}');
print('$name $name2');
dynamic email = 'judyb0626@gmail.com';
dynamic number = 1;
// var는 한 번 선언하면 다른 타입으로 변경 불가능
// dynamic은 타입 변경 가능
}
null
void main() {
String? name = 'soobin'; // null 가능
String name2 = 'judy'; // null 불가능
print(name!); // null 이 아니다
}
final, const
void main() {
// final은 변경 불가능
final String name = 'soobin';
print(name);
// const도 변경 불가능
const String name2 = 'judy';
// type 생략하면 var처럼 쓸 수 있음
final name3 = 'soobin';
const name4 = 'judy';
// datetime
DateTime now = DateTime.now();
print(now);
// final은 build time에 값을 알고있지 않아도 됨
// const는 build time에 값을 알고있어야 함
// build time에 코드를 컴퓨터가 이해할 수 있는 101010101으로 변경함
final DateTime now2 = DateTime.now();
// const DateTime now3 = DateTime.now(); error
}
operator
void main() {
int num = 2;
print(num + 2);
print(num - 2);
print(num * 2);
print(num / 2);
print('------------------');
print(num % 2);
print(num % 3);
print('------------------');
num++;
print(num);
num--;
print(num);
print('------------------');
num += 5;
print(num);
}
null 조건 operator
void main() {
double? num = 4.0;
num = null;
num ??= 3.0; // num이 만약 null이면 오른쪽 값으로 바꿔라
}
비교 연산자
void main() {
int num1 = 5;
int num2 = 10;
print(num1 > num2);
print(num1 < num2);
print(num1 >= num2);
print(num1 >= num2);
print(num1 == num2);
print(num1 != num2);
}
타입 비교
void main() {
int num1 = 5;
int num2 = 10;
print(num1 is int);
print(num1 is String);
}
or, and
void main() {
bool result = 1 > 10 && 1 > 0;
print(result);
bool result2 = 12 > 10 || 1 > 0;
print(result2);
}
List
void main() {
List<String> blackPink = ['제니', '지수', '로제', '리사'];
List<int> numbers = [1, 2, 3, 4, 5, 6, 7];
print(blackPink);
print(numbers);
// index
print(blackPink[0]);
}
List function
void main() {
List<String> blackPink = ['제니', '지수', '로제', '리사'];
print(blackPink.length);
blackPink.add('수빈');
print(blackPink);
blackPink.remove('수빈');
print(blackPink);
print(blackPink.indexOf('로제'));
}
Map
void main() {
Map<String, String> dic = {
'Harry' : '해리',
'Ron' : '론',
'Hermione' : '헤르미온느',
};
print(dic);
Map<String, bool> isHarryPotter = {
'Harry' : true,
'Ironman' : false,
'Hermione' : true,
};
print(isHarryPotter);
isHarryPotter.addAll({
'Spiderman' : false,
});
print(isHarryPotter);
print(isHarryPotter['Ironeman']);
isHarryPotter['Hulk'] = false;
print(isHarryPotter);
isHarryPotter.remove('Ironman');
print(isHarryPotter.keys);
print(isHarryPotter.values);
}
Set
void main() {
// Set, 중복 불가
final Set<String> names = {
'Soobin',
'Judy',
'Yerin',
};
print(names);
names.add('Hanni');
print(names);
names.remove('Soobin');
print(names);
print(names.contains('Hanni'));
}
if
void main() {
// if
int num = 2;
if(num % == 0) {
print('짝수');
} else {
print('홀수');
}
}
void main() {
// if
int num = 2;
if(num % 3 == 0) {
print('나머지 : 0');
} else if(num % 3 == 1){
print('나머지 : 1');
} else {
print('나머지 : 2');
}
}
switch
void main() {
// switch
int num = 3;
switch(num % 3) {
case 0:
print('나머지 : 0');
break;
case 1:
print('나머지 : 1');
break;
default:
print('나머지 : 2');
break;
}
}
for loop
void main() {
// for loop
for (int i = 0; i < 10; i++) {
print(i);
}
print('------------------------');
int total = 0;
List<int> numbers = [1, 2, 3, 4, 5, 6, 7];
for (int i = 0; i < numbers.length; i++) {
total += numbers[i];
}
print(total);
}
void main() {
int total = 0;
List<int> numbers = [1, 2, 3, 4, 5, 6, 7];
for (int num in numbers) {
print(num);
}
}
while loop
void main() {
// while loop
int total = 0;
while(total < 10) {
total += 1;
}
print(total);
total = 0;
do {
total += 1;
} while (total < 10);
print(total);
}
break
void main() {
// while loop
int total = 0;
while (total < 10) {
total += 1;
if (total == 5) break;
}
print(total);
}
continue
void main() {
// while loop
for (int i = 0; i < 10; i++) {
if (i == 5) continue;
print(i);
}
}
enum
enum Status {
approve,
pending,
rejected,
}
void main() {
Status status = Status.pending;
if (status == Status.approve) {
print('승인입니다.');
} else if (status == Status.pending) {
print('대기입니다.');
} else {
print('거절입니다.');
}
}
function
void main() {
addNumbers(10, 20, 30);
}
// 세 개의 숫자 (x, y, z)를 더하고 짝수인지 홀수인지 알려주는 함수
// parameter / argument - 매개변수
// positional parameter - 순서가 중요한 파라미터
addNumbers(int x, int y, int z) {
int sum = x + y + z;
print(sum);
}
optional parameter
void main() {
addNumbers(100);
}
// 세 개의 숫자 (x, y, z)를 더하고 짝수인지 홀수인지 알려주는 함수
// parameter / argument - 매개변수
// positional parameter - 순서가 중요한 파라미터
// optional parameter - 있어도 되고 없어도 되는 파라미터
addNumbers(int x, [int y = 20, int z = 30, int? r]) {
int sum = x + y + z;
print(sum);
}
named parameter
void main() {
addNumbers(x: 10,y: 20,z: 30);
}
// 세 개의 숫자 (x, y, z)를 더하고 짝수인지 홀수인지 알려주는 함수
// parameter / argument - 매개변수
// positional parameter - 순서가 중요한 파라미터
// optional parameter - 있어도 되고 없어도 되는 파라미터
// named parameter - 이름이 있는 파라미터 (순서는 안중요)
addNumbers({
required int x,
required int y,
required int z,
}) {
int sum = x + y + z;
print(sum);
}
void main() {
addNumbers(x: 10,y: 20);
}
// 세 개의 숫자 (x, y, z)를 더하고 짝수인지 홀수인지 알려주는 함수
// parameter / argument - 매개변수
// positional parameter - 순서가 중요한 파라미터
// optional parameter - 있어도 되고 없어도 되는 파라미터
// named parameter - 이름이 있는 파라미터 (순서는 안중요)
addNumbers({
required int x,
required int y,
int z = 30,
}) {
int sum = x + y + z;
print(sum);
}
반환값 설정
void main() {
int result = addNumbers(x: 10,y: 20);
print('sum : $result');
}
int addNumbers({
required int x,
required int y,
int z = 30,
}) {
int sum = x + y + z;
return sum;
}
named, positional 동시에 사용
void main() {
int result = addNumbers(10, y: 20, z: 50);
print('sum : $result');
}
int addNumbers(int x, {
required int y,
int z = 30,
}) {
int sum = x + y + z;
return sum;
}
arrow function
void main() {
int result = addNumbers(10, y: 20, z: 50);
print('sum : $result');
}
// arrow function - 화살표 함수
int addNumbers(int x, {
required int y,
int z = 30,
}) => x + y + z;
typedef
void main() {
Operation operation = add;
int result = operation(10, 20, 30);
print(result);
operation = subtract;
int result2 = operation(10, 20, 30);
print(result2);
}
// signature
typedef Operation = int Function(int x, int y, int z);
// 더하기
int add(int x, int y, int z) => x + y + z;
// 빼기
int subtract(int x, int y, int z) => x - y - z;
void main() {
int result = calculate(30, 40, 50, add);
print(result);
}
// signature
typedef Operation = int Function(int x, int y, int z);
// 더하기
int add(int x, int y, int z) => x + y + z;
// 빼기
int subtract(int x, int y, int z) => x - y - z;
// 계산
int calculate(int x, int y, int z, Operation operation) {
return operation(x, y, z);
}
void main() {
int result = calculate(30, 40, 50, add);
print(result);
int result2 = calculate(30, 40, 50, subtract);
print(result2);
}
// signature
typedef Operation = int Function(int x, int y, int z);
// 더하기
int add(int x, int y, int z) => x + y + z;
// 빼기
int subtract(int x, int y, int z) => x - y - z;
// 계산
int calculate(int x, int y, int z, Operation operation) {
return operation(x, y, z);
}
Last updated