[dart] data type

hana jeong·2023년 4월 27일
0

basic data type

void main () {
String catName = "rey";
bool isAlive = true;
int hp = 1234578;
double mp = 2456.123456;
}

숫자 자료형은 num, int, double이 있음
int와 double은 num의 클래스를 상속 받음

num 자료형을 사용하면 값은 integer가 될 수도 있고 double이 될 수도 있음

void main () {
String catName = "rey";
bool isAlive = true;
int hp = 1234578;
double mp = 2456.123456;
num x = 1234; // int
x = 1.12; // double
}

Lists, collection if, collection for

list

void main () {
	var nums = [1,2,3,4];	
}

list를 만드는 건 자바스크립트의 배열을 만드는 것과 같이 만들면 된다

자료형을 정해서 작성해줄 수 있음

void main () {
	List<int> nums = 
    [1,
    2,
    3,
    4,
    ];	// int가 들어있는 list
}

위와 같이 자료형을 명확히 적어줄 때는 class를 다룰 때 사용하면 됨

collection of

void main () {
	var pleaseGiveMeSix = true;
	var nums = 
    [1,
    2,
    3,
    4,
    if(pleaseGiveMeSix) 6, // pleaseGiveMeSix가 true면 list에 6을 추가할 수 있음
    ];
    print(nums) // [1,2,3,4,6]
    }
 // 위의 코드는 아래와 같음
 
 void main () {
	var pleaseGiveMeSix = true;
	var nums = 
    [1,
    2,
    3,
    4,
    ];
    if(pleaseGiveMeSix){
    	nums.add(6);
    }
}

조건에 따라 element를 추가할 수 있음

collection for

void main () {
	var oldFriend = ['hans', 'adam'];
    var newFriend = [
    'apple',
    'saoko',
    'jane',
    for(var friend in oldFriend) "😊 $friend"
    ];
}

// [apple, saoko, jane, 😊 hans, 😊 adam];

newFriend 리스트 안에 oldFriend가 추가된 건데,
for문을 돌면서 새로운 문자열을 생성하고 이를 newFriend 리스트의 마지막 요소들로 추가한 것임
좋다...

String interpolation

text에 변수를 추가하는 방법임

void main () {
	var name = "haha";
    var sayHello = "$name 가 반갑다고 인사하네요. 안녕!";
    print(sayHello); // haha 가 반갑다고 인사하네요. 안녕!
}

단순하게 변수의 값을 담고 싶은 것이라면 $변수명 처럼 입력하면 됨

자바스크립트의 템플릿 리터럴 같이 변수명 앞에 $(달러사인)를 붙이는데 따로 중괄호와 백틱을 사용할 필요없이 작은 따옴표나 큰 따옴표 안에 달러사인을 넣고 그 뒤에 바로 변수명을 쓰면 끝임
하지만 이 방법은 이미 변수가 존재할 때 사용하는 방법임

변수의 값을 계산하고 싶은 거라면 $와 함께 중괄호 내에 계산할 내용을 적으면 됨

void main () {
	var name = "haha";
    var age = 0
    var sayHello = "${age + 1}살인 $name 가 반갑다고 인사하네요. 안녕!";
    print(sayHello); //1살인 haha 가 반갑다고 인사하네요. 안녕!
}

set

void main () {
	var nums = {1,2,3,4,5}
}

or

void main () {
	set<int> nums = {1,2,3,4,5}
}

set에 있는 요소들은 유니크 해야함
아래 예시를 보자

void main () {
	var nums = {1,2,3,4,5};
    nums.add(1);
    nums.add(1);
    print(nums) // {1,2,3,4,5} 1을 더해도 변경x
}

list에 있는 값들은 변경 o

void main () {
	var nums = [1,2,3,4,5];
    nums.add(1);
    nums.add(1);
    print(nums) // {1,2,3,4,5,1,1}
}

요소가 항상 하나씩만 있어야하면 set을 사용하면 됨

maps

자바스크립트의 object와 같음

void main() {
	var player = {
    	'name': 'haha',
        'gender': 'female',
        'exp': 123456789,
        'alive': true,
    };
}

위의 예시 자료형을 보면 Map<String, object>라 되어있음
키가 String, value가 object라는 뜻인데 여기서 말하는 object는 어떤 값이든 올 수 있다는 뜻임(typescript의 any와 비슷)

하지만 key와 value를 가지는 구조로 object를 만들 때 그 object가 특정한 구조(API로 받은 데이터 등)를 가지고 있다면 class를 사용하는 걸 추천함

profile
https://developer-hh.tistory.com 로 옮깁니다

0개의 댓글