TIL - 스파르타코딩클럽: 플러터 (2일차 - 1일차에는 결석했음!)
변수
변수 타입 설정 따위 필요하지 않은 파이썬을 주로 사용하다가 플러터를 배우니 뭔가 더 각이 잡혀 있는 언어 같다는 생각이 들었다.
플러터에서 (주로?) 사용되는 언어 Dart에서는 변수를 선언하기 전에 해당 변수가 받는 데이터 타입을 미리 설정해 준다.
String name = '김다시마';
String latestVersion = '1.0.1';
var kittypawdev = true;
String? member = null;
위의 예시에서 위 두 줄에서 선언한 name, latestVersion은 String 데이터 타입을 받을 것이다. 하지만 아리송한 변수 이름 kittypawdev는 도대체 어떤 타입의 데이터를 받아올 변수인지 모르겠다. 이런 경우 그냥 var 로 선언하면, 받아지는 변수의 데이터 타입을 추론해서 플러터가 알아서 처리한다. 여기서는 true 라는 boolean 값을 넣었으니, kittypawdev의 데이터 타입은 isBool이 되겠구나.
마지막에 타입 'String'을 지정하곤, 옆에 물음표가 붙어 있다. 이건 'Null safety'와 관련이 있다. String? member; 이렇게 정의된 변수 member에서는 String 타입, 즉 문자열을 받아들이고, null도 받아들일 수 있다. 하지만, 위의 세 변수, name, latestVersion, kittypawdev 변수명이 선언될 때에는 물음표가 없다. 이는 null을 받아들이 수 없는 변수란 것이다.
(참조: https://dart.dev/language/variables)
반복문
반복문을 쓸 때 필요한건, 반복할 인덱스 변수와 그 초깃값에 대한 정의, 그 인덱스의 한계, 그리고 루프를 한 바퀴 돌 때 마다, 인덱스 값이 어떻게 변화하는지를 정하는것, 이 세 가지인 것 같다.
void main() {
var message = StringBuffer('Dart is fun');
for (var i = 0; i < 5; i++) {
message.write('!');
}
print(message.toString()); // 출력 코드 추가
}
이 코드의 출력 결과를 보면 Dart is fun 이라는 문자 뒤에 느낌표 다섯개가! 따라서 붙어온다. for loop를 한 바퀴 돌 때 마다 느낌표가 한 개씩 붙는다. 이 loop의 기준이 되는 인덱스 변수는 i로 정해졌고, 이 초깃값은 0이다. 여기서 i는 5 미만까지만 간다. 그리고 루프 한 회 돌 때 마다 값이 1씩 늘어난다. 그러면 i는 여기 for loop 안에서 0, 1, 2, 3, 4 이렇게 총 다섯개의 값을 거쳐간다. 이에 따라 최종 추가되는 느낌표는 다섯개!
(참조: https://dart.dev/language/loops)