main() {
var name = '철수';
print(name); // 철수
print(name.runtimeType); // string (문자)
var age = 20;
print(age); // 20
print(age.runtimeType); // int (정수)
print("="*20);
String address = '우리집';
print(address); // 우리집
address = '모두의 집';
print(address); // 모두의 집
print("="*20);
String? email; // ⬅️ 아무것도 안넣었으므로 비어있음
print(email); // null ⬅️ 비어있음을 의미
email = "a@a.com"; // 문자열 할당
print(email); // a@a.com
email = null; // 다시 비우기
print(email); // null
print("="*20);
final String phone = "010-0000-0000";
print(phone); // 010-0000-0000
}
void main() {
String name = "철수"; // 쌍따옴표
String email = 'hello@world.com'; // 단따옴표
// 문자열 연산
print(name + email); // 철수hello@world.com
print(name + " " + email); // 철수 hello@world.com
// 문자열 속에 변수값 할당
print("name email"); // 변수가 아닌 name과 email 문자열 출력
print("name $email"); // 문자열 안에 변수의 값 넣기 : "변수명"
print("{변수명 이외의 것}"
// 내장함수
print(email.split('@')); // 문자열 뒤에 .을 찍어서 문자열 내장된 기능을 쓸 수 있어요.
}
void main() {
// int
int age = 20; // 정수 입력 가능
print(age);
// double
double longitude = 127.634324; // 실수 입력 가능
print(longitude);
// int를 double로 변경
print(age.toDouble());
// double을 int로 변경 (소수점 버림)
print(longitude.toInt());
// 연산
print(1 + 2); // 덧셈 = 3
print(2 * 4); // 곱셈 = 8
print(4 / 3); // 나누기 = 1.333...
print(5 % 3); // 5를 3으로 나눈 나머지 = 2
print(5 ~/ 3); // 5를 3으로 나눈 몫 = 1
}
void main() {
print(true); // 참 = true
print(false); // 거짓 = false
print(!true); // !는 not의 의미 = false
// 비교 연산의 결과는 bool
print(1 == 1); // == : 두 값이 같은지 비교. 1과 1은 같음 = true
print(1 != 2); // != : 두 값이 다른지 비교. 1과 2는 서로 다름 = true
print(1 > 2); // 1은 2보다 작음 = false
print("hello" == 'hello'); // 같은 문자열이므로 true
var myNumber = 1;
var answerNumber = 1;
// 참거짓을 판단하여 흐름을 변경하는 조건문과 함께 사용합니다.
if(myNumber == answerNumber) {
print("당첨"); // true인 경우 실행
} else {
print("꽝"); // false인 경우 실행
}
}
void main() {
// 배열 생성
List fruits = ["바나나"]; // 문자열만 담을 수 있는 배열을 생성합니다.
print(fruits);
print("fruits 개수 : ${fruits.length}"); // 개수 조회
// 추가
print('--------- 추가 -----------');
fruits.add('딸기'); // 딸기 추가
print(fruits);
fruits.add('배'); // 배 추가
print(fruits);
// fruits.add(1); // fruits 타입이 List이므로 문자열만 추가 가능
// 조회
print('--------- 조회 -----------');
print(fruits[0]); // 배열에 0번째 원소 꺼내기
print(fruits[1]); // 배열에 1번째 원소 꺼내기
// 수정
print('--------- 수정 -----------');
print(fruits);
fruits[0] = "키위"; // 0번째 바나나를 키위로 수정
print(fruits);
// 삭제
print('--------- 삭제 -----------');
fruits.remove('딸기'); // 딸기와 일치하는 값이 제거됩니다.
print(fruits);
fruits.removeAt(0); // 0번째 원소 삭제
print(fruits);
// 뭐든지 담을 수 있는 배열 생성
print('-------- dynamic --------');
List buckets = [1, "문자", [1, 2]]; // dynamic은 모든 타입을 포괄합니다.
print(buckets);
buckets.add(true); // 아무거나 담을 수 있음
print(buckets);
print(buckets[2]); // 2번째 배열 조회
print(buckets[2][0]); // 2번째 배열의 0번째 값 조회
}
void main() {
// Map은 중괄호 {} 로 Key와 Value를 감싼 있는 형태입니다.
// Map<Key 타입, Value 타입>과 같이 타입을 명시할 수 있습니다.
Map<String, dynamic> person = {
"name": "철수",
"age": 20
};
print(person);
// 조회 : map[key]를 입력하여 value를 가져옵니다.
print(person['name']);
print(person['age']);
// 추가 : 새로운 key로 값을 넣는 경우, 추가가 됩니다.
person['email'] = 'hi@mail.com';
print(person);
// 수정 : 기존에 존재하는 key로 값을 넣는 경우, 수정이 됩니다.
person['age'] = 10;
print(person);
// 삭제 : key를 지정하여 삭제할 수 있습니다.
person.remove('name');
print(person);
}