void main() {
// 정수
int number1 = 10;
int number2 = 15;
print(number1 + number2);
print(number1 - number2);
print(number1 / number2);
print(number1 * number2);
// 실수
double number3 = 2.5;
double number4 = 0.5;
print(number3 + number4);
print(number3 - number4);
print(number3 / number4);
print(number3 * number4);
// boolean
bool isTrue = true;
bool isFalse = false;
print(isTrue);
print(isFalse);
// string
String name = '데식';
String name2 = '도운';
print(name +' '+ name2); //데식 도운
print('${name} ${name2}'); //데식 도운
print('$name $name2'); //데식 도운
// dynamic ; 어떤 타입이든 넣을 수 있음
dynamic name3 = '솜';
dynamic number = 1;
var name4 = '민';
// var과 차이점 ?
print(name3.runtimeType); // String
print(name4.runtimeType); // String
name3 = 2; // 타입 변경 가능
name4 = 5; // error
// name2를 처음에 String 타입으로 선언했기 때문에 다른 타입으로 변경 불가
}
void main(){
// nullable - null이 될 수 있다. ?
// non-nullable - null이 될 수 없다. !
// null - 아무런 값도 있지 않다.
String name = '솜';
print(name); // 솜
name = null; // error 발생
// A value of type 'Null' can't be assigned to a variable of type 'String'.
// null이 들어갈 수 없는 string 타입인데 null을 넣으려고 했다는 의미
String? name2 = '민'; //타입 옆에 ? 넣을 경우 null까지 들어갈 수 있는 타입
name2 = null;
print(name2!); name은 절대 null이 아니다!
}
void main(){
final name = '솜';
print(name); // 솜
name = '민'; //error
const name2 = '민';
print(name2); // 민
name2 = '솜'; //error
}
현재 시간을 변수에 저장할 수 있음
코드가 실행되는 순간의 시간을 가져옴
final은 빌드 타임의 값을 알고 있지 않아도 됨.
const는 빌드 타임의 값을 알고 있어야 함 -> 지금 당장, 지금 코드를 작성했을 때 작성하는 순간의 코드의 값을 알고 있어야함.// 언제 실행될지 모르기 때문에 에러 발생
void main(){
DateTime now = DateTime.now();
print(now); // 2023-06-27 17:13:39.647
final DateTime now2 = DateTime.now();
const DateTime now3 = DateTime.now();
}
void main(){
double number = 4.0;
print(number); // 4
number+=1;
print(number); // 5
number-=1;
print(number); // 4
number*=2;
print(number); // 8
number/=2;
print(number); // 4
}
void main(){
double? number = 4;
print(number); //4
number = 2.0;
print(number); //2
number = null;
print(number); //null
number ??= 3.0; // number가 만약 null이면 3.0으로 값을 바꾸라는 뜻
print(number); //3
}
void main(){
int number1 = 1;
int number2 = 2;
print(number1 > number2); // false
print(number1 < number2); // true
print(number1 >= number2); // false
print(number1 <= number2); // true
print(number1 == number2); // false
print(number1 != number2); // true
}
void main(){
int number1 = 1;
print(number1 is int); //true
print(number1 is String); //false
print(number1 is! int); //false
print(number1 is! String); //true
}
void main(){
bool result = 12 > 10 && 1 > 0;
print(result); //true
bool result2 = 12 > 10 && 0 > 1;
print(result2); //false
bool result3 = 12 > 10 || 1 > 0;
print(result3); //true
bool result4 = 12 > 10 || 0 > 1;
print(result4); //true
bool result5 = 12 < 10 || 0 > 1;
print(result5); //false
}
void main(){
// 타입을 지켜야함
List<String> blackPink = ['제니','지수','로제','리사'];
print(blackPink[0]); //제니
print(blackPink.length); //4
blackPink.add('솜');
print(blackPink); //['제니','지수','로제','리사','솜']
blackPink.remove('솜');
print(blackPink); //['제니','지수','로제','리사']
print(blackPink.indexOf('로제'); //2
}
key/value
void main(){
Map<String, String> dictionary = {
'Harry' : '해리',
'Ron' : '론',
'Hermione' : '헤르미온느',
};
print(dictionary);
// {Harry: 해리, Ron: 론, Hermione: 헤르미온느}
Map<String, bool> isHarryPotter = {
'Harry' : true,
'Ron' : true,
'Ironman' : false,
};
isHarryPotter.addAll({
'Spiderman': false,
}); // 한번에 여러 키-밸류 추가 가능
print(isHarryPotter);
// {Harry: true, Ron: true, Ironman: false, Spiderman: false}
// 값 확인하기
print(isHarryPotter['Ironman']); // false
// 값 변경하기
isHarryPotter['Spiderman'] = true;
print(isHarryPotter);
// {Harry: true, Ron: true, Ironman: false, Spiderman: true}
// 값 삭제하기
isHarryPotter.remove('Harry');
print(isHarryPotter);
// {Ron: true, Ironman: false, Spiderman: true}
// 키, 값 가져오기
print(isHarryPotter.keys); // (Ron, Ironman, Spiderman)
print(isHarryPotter.values); // (true, false, true)
}
list와 유사하지만 list와 달리 중복값이 들어갈 수 없음
void main(){
final Set<String> names = {
'som',
'min',
'dart',
'som',
};
print(names); // {som, min, dart}
names.add('something');
print(names); // {som, min, dart, something}
names.remove('something');
print(names); // {som, min, dart}
// 값이 있는지 확인
print(names.contains('dart')); // true
}