1일차 과제

김태원·2023년 3월 22일
0

Dart

목록 보기
3/5

도메인(domain): 인터넷상에서 컴퓨터, 서버, 웹사이트 등을 식별하는 주소(address)입니다.

DNS(Domain Name System): 네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP 주소로 해석해주는 TCP/IP 네트워크 서비스입니다.

HTTP 메서드(method)의 종류: GET, POST, PUT, DELETE, DEAD, OPTIONS, TRACE, CONNECT 등이 있습니다.

HTML과 XML :
HTML(HyperText Markup Language)은 웹 페이지를 만드는 데 사용되는 마크업 언어입니다,
XML(Extensible Markup Language)은 마크업 언어의 한 종류로, 데이터를 저장하고 전송하기 위해 사용된다고 합니다.


4-1.

void main() {
 int test = '테스트';
 print(test);
}

에러, 이유는 변수 test는 정수형으로 선언되었지만 '테스트'는 문자열로 할당했기 때문인것 같습니다

4-2.

void main() {
 var test = '테스트';
 print(test.runtimeType);
}

변수 test를 var로 선언하면
var는 변수의 데이터 타입이 자동으로 지정되게 하는것같습니다
변수에 할당된 값인 '테스트'는 문자열이므로,
print(test.runtimeType); 은 데이터 타입을 출력되게 하는 것 같습니다
답은 String 인 것 같습니다

4-3.

void main() {
 var test = '303'+'101';
 print(test);
}

문자열끼리 더하기 때문에 사칙연산하지않으므로 303101 입니다

4-4.

void main() {
 var true = 'test';
 print(true);
}

에러, 그 이유는 변수명에 true라는 예약어가 쓰였기때문입니다

4-5.

void main() {
 print(true.runtimeType);
}

bool입니다 true(참)은 boolean데이터타입이기 때문입니다

4-6.

void main() {
 String const = 'test';
 print(const);
}

오류, 찾아보니, const도 예약어라고 합니다

4-7.

void main() {
 var value = '303808' != '303'+'8'+'08';
 print(value);
}

값이 303808과 303808('303'+'8'+'08')은 서로 다른가(!=) 라고 했을때
아니므로 false가 나옵니다

4-8.

void main() {
 List list1 = [1,2,3,4];
 List list2 = [5,6,7];
 list1.add(list2);
 print(list1);
}

리스트 문제에서.. 먼저, list1과 list2 두 개의 리스트가 생성되고 초기화됩니다
그리고 list1.add(list2) 코드를 실행하면,
list2 리스트가 list1 리스트의 끝에 추가된다고 합니다.
그래서, list1 리스트의 요소는 [1, 2, 3, 4, [5, 6, 7]]가 되는 것 같습니다

4-9.

void main() {
 List list1 = [1,2,3,4];
 List list2 = [5,6,7];
 list1.addAll(list2);
 print(list1);
}

list1.addAll(list2) 코드는
list1 리스트에 list2 리스트의 모든 요소를 추가하는 것 같습니다
따라서, list1 (기준)에 list2를 넣어서 [1,2,3,4,5,6,7] 가 됩니다.

4-10.

void main() {
 List list1 = ['a','b','d'];
 list1.insert(2,'c');
 print(list1);
}

찾아보니
insert 메서드는 List 클래스에 정의된 메서드 중 하나로,
리스트에 새로운 요소를 지정한 인덱스에 삽입하는 역할을 합니다. 라고 되어있습니다..

list1.insert(2, 'c') 코드에서는
list1 리스트의 인덱스 2 위치(d)에 'c' 요소를 삽입하고
(b와d사이? d앞에 오는것같은데.. 이 부분은 잘모르겠다; )
따라서, list1은 ['a','b','c','d']가 됩니다

4-11.

void main() {
  List list1 = [5,4,3,2,1,0];
  list1.remove(0);
  print(list1);
}

이 리스트의 이름은 list1이고, 5부터 0까지의 값을 갖습니다
list1에서 0 값을 삭제합니다, remove(0)
list1을 출력하면 [5,4,3,2,1] 이 됩니다.

4-12.

void main() {
  List list1 = [5,4,3,2,1,0];
  list1.removeAt(0);
  print(list1);
}
  • remove(0)은
    [5,4,3,2,1] remove(0)의 괄호안에 0이라고 되어있는데 원하는 숫자 (예시로) 0 을 적으면 그 숫자를 삭제하는 것 같다
  • removeAt(0)은 리스트의 특정 인덱스에 해당하는 값을 삭제하고자 할 때 사용한다
    이거는 0부터 시작하니까 [5,4,3,2,1,0]에서 5를 삭제한다
    • 답은 [4, 3, 2, 1, 0]

4-13.

void main() {
  List list1 = [5,4,3,2,1,0];
  list1.shuffle();
  print(list1);
}

shuffle는 '섞다'라는 뜻이다
즉, 무작위로 배열된다는 뜻이다 (랜덤같은것이다)

이제는 좀 복잡해진다..

4-14.

void main() {
  List list1 = [5,4,3,2,1,0];
  List list2 = [];
  list2.add(list1.isEmpty);
  list2.add(list1.isNotEmpty);
  list2.add(list1.length);
  list2.reversed;
  print(list2);
}
  • Empty는 '(텅)빈'이라는 뜻이다
    list2.add(list1.isEmpty)
    list1이 비어있는지 여부를(T,F로) list2에 추가함
  • 리스트가 비어있지 않으므로 false이다
  • NotEmpty은 비어있지않는 것이므로
    list1이 비어있지 않은지 여부를(T,F로) list2에 추가함
  • 리스트가 비어있지 않으므로 true이다
    length는 '길이'라는 뜻이다
  • list2.add(list1.length); 에서 길이는 6이다 (6칸이므로) 그리고 list1의 길이를 list2에 추가한다
  • reversed는 '반대의'라는 뜻으로 list1을 뒤집습니다(reversed)
    ↓ 멘토답변
    print(list2.reversed); 로 하면 뒤집어진 결과가 나오지만 list2.reversed만 사용하면 아무런 변화가 없습니다
    list2.reversed; 대신 list2 = list2.reversed.toList(); 를 적어주시고 print(list2); 를 하시면 뒤집어진 결과가 출력됩니다
    아직 배우지않은 함정문제였다

어렵다..

4-15.

void main() {
  List list1 = [0, 1, 2, 3, 4, 5, true, false];
  List list2 = [];
  list2.add(list1.contains(list1[list1.length - 1]));
  list2.insertAll(0, ['a', 'b', 'c', 1, 2, 3]);
  list2.indexOf(true)-list2.indexOf(false);
  print(list2.indexOf(true)-list2.indexOf(false));
}
  • contains는 포함하다 라는 뜻입니다
  • List1과 List2를 선언(초기화)하고

리스트의 인덱스는 0부터 시작하므로,
마지막 인덱스 요소(뒤에서부터1칸)는 -1이 된다
따라서 [list1.length - 1]이 되고

list2.add(list1.contains(list1[list1.length - 1]));에서
contains()
리스트에서 주어진 객체가 포함되어 있는지 여부를 확인하는 역할이다

  • insert(삽입하다)
    insertAll는 어떤 리스트 위치에 다른 리스트 요소를 모두(?) 삽입할 수 있도록 해줍니다...

위 마지막 문제는 찾기도 까다롭고 다른 문제보다 어려웠습니다.

마지막문제는 혼자 다 못풀었네요..
모르는 것:

list2.insertAll(0, ['a', 'b', 'c', 1, 2, 3]);
list2.indexOf(true)-list2.indexOf(false);
print(list2.indexOf(true)-list2.indexOf(false));


  • 다트 데이터타입과 파이썬 데이터타입의 비슷한 점

    = 다트와 파이썬은 모두 정수와 실수, 문자열, 불리언(Boolean)을 지원한다

profile
개발자 입니다

0개의 댓글