String // int // bool // var // dynamic
둘 다 재할당 가능
둘 다 재선언 불가능
처음에 지정할 때 var 는 타입 고정
dynamic 은 any 같이 모든 가능
처음에 타입을 지정하기 때문에
let name;
let name = "1234"
name = 1234
타입 변형 가능
=> 정말 잘 안 씀
List
콘솔 찍으면 [] 나옴
이렇게 보면 둘 다 차이가 없는데
new List()는 좀 더 기능이 있다고 함 => 근데 다트 업데이트 되면서 막아놓은 거 같음 저렇게 쓰지 말라고 함(gpt도 그럼)
gpt가 알려준 수정안
void main() {
List<String> redVelvetList = [];
print(redVelvetList);
List<String> redVelvetList2 = List();
print(redVelvetList2);
}
push 대신에 add를 쓰면 []에 push 됨
타입 넣어놓으면 해당 타입만 들어갈 수 있음
++ List의 길이를 지정할 수도 있음
이렇게 쓰면 된다는데 이 문법은 dart2 들어서면서 없어져서 프로그램에서 오류남
강의에서는 print [null, null, null] 로 찍힘
아마 자리를 미리 만들어두는 듯 (크기를 먼저 정해두고 메모리 할당 먼저 하는 듯)
void main() {
List<String> btsList = List.filled(3, ''); // 또는 List<String>.filled(3, '');
print(btsList);
}
이렇게 쓴다고 함
얘는 [, , ,] 이렇게 나옴
만약 위처럼 null로 찍고 싶다면
void main() {
List<String?> btsList = List.filled(3, null);
print(btsList);
}
이렇게 null 이라고 지정
기본값이 null 이던 걸 설정가능하게끔 바꾼 거 같음
++ 여기서 ? 이란
dart는 null 안정성을 나타냄
그래서 변수에 null 못 넣음
근데 허용되어야 할 수도 있으니까
? <= 이거 써서 nullable 타입을 선언하는 거임
String? nullableString = null;
예를 들면 이렇게
그럼 메모리 할당 먼저한 List는 어떻게 update ?
* 미리 값을 정해두어서 삭제 추가 안됨
add 도 안됨
removeAt도 안됨
=> removeAt(2) : index2를 지운다
- 인덱스를 사용해서 update 침
btsList[0] = "RM"
++++ print 찍을 때 {}, ${}
void main() {
String name = "John";
// 사용 가능한 두 가지 방법:
print("Hello, $name!");
print("Hello, ${name}!");
}
둘 다 가능함
스트링 안에서 변수 보여줄 때 하는 거
근데 가독성을 위해서 {}를 추가로 붙이는 거라고 함
값들을 넣은 채로 선언
이렇게 두 가지 방법이 있음
근데 2번째 문법은 당연히 안 됨
void main() {
List<String> stringList = ["가", "나", "다"];
print(stringList);
List<String> stringList2 = List<String>.from(["가","나","다"]);
print(stringList2);
}
요즘엔 이렇게 쓰면 가능함
그럼 List.from 과 List() 의 차이는?
List.from 사용할 때
void main() {
Set<String> stringSet = {'A', 'B', 'C'};
// List.from을 사용하여 Set을 리스트로 변환
List<String> stringList = List<String>.from(stringSet);
print(stringList);
}
이미 다른 iterable 객체가 있는 경우에 쓰면 됨
iterable 객체가 이미 존재 => 이거 변환 시
- 원본 안 바뀜 복사해서 바꾸는 거임
List() 사용할 때
void main() {
// 빈 리스트 생성
List<String> stringList = List<String>();
// 초기 요소 추가
stringList.add('X');
stringList.add('Y');
stringList.add('Z');
print(stringList);
}
초기에 빈 리스트를 만들어가면서 요소를 추가해야하는 경우
결론은 그냥 가독성 차이
map // set 이어서
'TIL' 카테고리의 다른 글
dart 3 <= enum, 타입 관련 이야기라 재밌음 (1) | 2023.11.29 |
---|---|
dart 2 (0) | 2023.11.27 |
리액트 쿼리3 (2) | 2023.11.26 |
제이쿼리 1 append, template (0) | 2023.10.06 |
리액트 쿼리 2 (0) | 2023.09.30 |
댓글