[Dart] 변수와 타입

향신료·2023년 10월 7일
0

🚧 해당 게시글은 FastCampus의 15개 프로젝트로 실무까지 끝내는 Dart & Flutter 앱 개발 강의를 기반으로 작성되었습니다.

강의 링크 👉 https://fastcampus.co.kr/dev_online_dartflutter






변수


// 타입 변수명;
string testVariable = "저는 테스트 변수예요."; // 선언시

testVariable = "저는 값이 변경되었어요."; // 값 변경시

📍 보통 변수 명의 경우 두 개 이상의 단어가 붙어있을 경우 첫 번째 단어는 소문자, 두 번째 단어의 시작을 대문자로 시작하는 것이 암묵적인 룰입니다.



특정 데이터(값)을 담아두는 그릇

해당 변수들은 기본적으로 생성과 동시에 타입을 정해 선언되며 선언 시에 적용된 타입과 같은 값을 할당할 수 있습니다.

변수는 값이 할당된 후에도 수정할 수 있는 것이 특징입니다.



다트에서 타입은 꼭 정의하지 않아도 되며

해당 미정의 가변형을 위한 키워드들도 존재하지만 프로그래밍의 특성상 타입이 명확해야 추후 코드 관리와 협업에 더욱 용이합니다.









타입


데이터의 유형을 이야기하며 기본형, 자료형, 가변형 등으로 나뉘며 해당 글에서는 기초적인 세 가지 유형의 타입에 관하여 정리합니다.





기본형

  • String
  • int
  • double
  • bool
  • null

String

String name = 'mirimhee';
String sentence = "Hi, friend!";

문자열을 나타내는 데이터 타입.

작은 타옴표 ( ‘ ’ ) 혹은 큰따옴표 ( “ “ )로 문자열을 작성할 수 있습니다.


int

int age = 99;
int minusNumber = -1;

정수를 나타내는 데이터 타입.


double

double piValue = 3.14;

소수점 숫자를 나타내는 데이터 타입.

소수 부분을 포함하는 숫자를 표현할 수 있습니다.


null

 // nullableString은 null을 가질 수 있음
String? nullableString;

// nullableBool에 직접 null 할당
bool? nullableBool = null; 

값이 존재하지 않음을 나타내는 타입.

변수에 아무 값도 할당하지 않거나 변수를 초기화하지 않았을 때 사용됩니다.





자료형

  • List
  • Set
  • Map

List

// List : List<타입>

int<String> newList = [1, 2, 3, 4, 5];

// 리스트에 "신규 값" 추가 => ["신규 값"]
newList.add(5); 

// 리스트에서 "신규 값" 삭제 => []
newList.remove(5); 

// newList에서 첫번째 숫서인 값을 가져와 element는 1이 됩니다.
int element = newList[0]; 

순서가 있는 데이터 컬렉션 타입, 동일한 타입의 요소를 저장합니다.

인덱스를 사용하여 개별 요소에 액세스할 수 있습니다.


Set

// Set : Set<타입>
Set<String> uniqueNames = {'A', 'B', 'A'};

// 중복된 요소가 자동으로 제거
// uniqueNames에는 {'A', 'B'}만 저장됩니다.

// 요소 추가 => {'A', 'B', 'C'}
uniqueNames.add('C'); 

// 요소 제거 => { 'B', 'C'}
uniqueNames.remove('A');

순서가 없고 중복된 요소가 허용되지 않는 데이터 컬렉션 타입입니다.


Map

// Map : Map<키 타입, 값 타입>

Map<String, int> scores = {
  'A': 95,
  'B': 85,
  'C': 75,
};

// 새로운 키-값 추가
scores['D'] = 65;

// 특정 키에 대한 값 조회
// score는 65가 됩니다.
int score = scores['D']; 

// 키-값 쌍 제거
scores.remove('C');

키-값 쌍을 저장하는 데이터 구조 타입, 각 키는 고유해야 합니다.
특정 키를 사용하여 해당 키에 연결된 값을 검색할 수 있습니다.






가변형

  • var
  • dynamic

var

// var

 // String 타입 부여
var newVariable = "새로운 변수";

// 같은 String 값 할당시 에러 X
newVariable = "새롭게 값 할당"; 

// 처음 할당한 String 타입이 아닌 값이므로 에러 발생
newVariable = false; 

최초 부여된 타입을 고정으로 사용하는 타입으로, 최초 타입 아닌 값을 할당 시 에러가 발생합니다.


dynamic

// dynamic

// String 타입 부여
dynamic dynamicVariable = "새로운 다이나믹"; 

 // int 값 할당에도 에러 X
dynamicVariable = 1;

 // bool 값 할당에도 에러 X
dynamicVariable = false; 

타입이 코드 진행 중 언제라도 타입 변환 가능한 타입입니다.






💡 변수 외로 값을 저장할 수 없나요?


값의 수정이 가능한 변수 외로는 한 번 할당된 후 바뀌지 않는 값인 상수가 존재합니다.

Dart에서는 const와 final 두 가지의 상수 타입이 존재하며 두 가지 타입의 차이가 궁금하시다면 아래 링크를 참조해 주시면 감사하겠습니다.


간단하게 알아보는 const 와 final의 차이

profile
드문드문 기초 정보를 올리는 블로그

0개의 댓글