안녕하세요! 피피아노입니다 🎵
오늘은 제가 보고 공부하기 위해서 Dart 문법을 작성하려고 합니다. 아직 초반이라 자세히 다루면서 정리할 만한 게 없기 때문에 가볍게 정리하고 넘어가겠습니다. 나중에 더 많이 공부해서 제대로 포스팅 할게요!
오늘은 간단 정리라서 편의 말투로 진행하겠습니다!
그럼 시작!
하기 전에.... 티스토리 코드 블럭에서 Dart 언어를 지원하지 않아서 제가 좋아하는 Swift로 설정해서 표기하겠습니다..ㅎ
변수 선언
Dart에서는 변수를 선언할 때 var, final, const 키워드를 사용함.
var: 변수를 선언하고 나중에 재할당할 수 있음.
var name = 'Alice';
name = 'Bob'; // 재할당 가능
final: 한 번만 값을 할당할 수 있으며, 나중에 재할당이 불가능함.
final age = 25;
// age = 26; // 오류 발생
const: 컴파일 타임 상수로, 변하지 않는 값을 나타냄.
const pi = 3.14;
final과 const의 차이가 헷갈려서 적어보자면 final은 소스 실행 중 한번 설정 이후로 값이 변하지 않는 것이고, const는 컴파일 결정이 되기 때문에 소스 실행 중에는 재정의가 될 수 없다. 즉, 실행 중에 결정되냐 아니면 컴파일 시에 결정되냐의 차이
데이터 타입
Dart는 여러 기본 데이터 타입을 제공한다.
숫자: int와 double
int a = 10;
double b = 20.5;
문자열: String
String greeting = 'Hello, Dart!';
불리언: bool
bool isDartFun = true;
제어문
조건문: if, else, else if
if (a > b) {
print('a가 b보다 큽니다.');
} else {
print('a가 b보다 작거나 같습니다.');
}
반복문: for, while
for (var i = 0; i < 5; i++) {
print(i);
}
var j = 0;
while (j < 5) {
print(j);
j++;
}
함수
Dart에서 함수는 아래처럼 정의할 수 있음.
//중괄호 일반 함수
int add(int a, int b) {
return a + b;
}
// 화살표 함수 (single-line function)
int multiply(int a, int b) => a * b;
//Future 반환 값이 있는 함수
Future<int> _customDelay(int delay) async {
try {
await Future.delayed(Duration(seconds: delay));
return delay;
} catch (e) {
print(e);
return -1;
}
}
// 함수 선언: 반환 값이 있는 함수
DateTime getTimeDifference(int hourDifference) {
DateTime timeNow = DateTime.now();
DateTime timeDifference = timeNow.add(Duration(hours: hourDifference));
return timeDifference;
}
// 함수 선언
void getCurrentDateTime() {
// 현재 시간을 가져오는 함수
var currentTime = DateTime.now();
print('Current time: $currentTime');
}
// 파라미터가 있는 함수 선언
void getCurrentDateTimeWithDifference(int hourDifference) {
// 현재 시간을 가져오는 함수
var timeNow = DateTime.now();
// 시간 차이를 계산
var timeDifference = timeNow.add(Duration(hours: hourDifference));
print('Current time: $timeNow');
print('Time with Difference: $timeDifference');
}
클래스와 객체
Dart는 객체 지향 언어로, 클래스를 사용하여 객체를 생성할 수 있음.
class Person {
String name;
int age;
Person(this.name, this.age);
void introduce() {
print('안녕하세요, 제 이름은 $name이고, 나이는 $age세입니다.');
}
}
void main() {
var person = Person('Alice', 30);
person.introduce();
}
리스트와 맵
Dart는 컬렉션 타입으로 리스트와 맵을 제공함.
리스트: 여러 값을 순서대로 저장할 수 있는 배열과 유사한 구조
var fruits = ['사과', '바나나', '오렌지'];
print(fruits[0]); // 사과
맵: 키-값 쌍으로 데이터를 저장함.
var student = {'name': 'Alice', 'age': 20};
print(student['name']); // Alice
감사합니다.
잘못된 내용이 있거나 더 좋은 내용 피드백은 언제나 환영합니다!
궁금하신 부분은 댓글로 질문 부탁드립니다!