본문 바로가기

DART35

flutter_BuildContext context의 의미 flutter 과제중 화면이동을 하려는데 이해한 내용으로 코딩을 하다보니context가 없다는 에러를 만남. Widget build(BuildContext context) { return Scaffold() Navigator.pop(context); 도대체 context 이게 뭔데?? chatGPT에게 물어봄. ------------------------------------context는 Flutter에서 매우 중요한 개념으로, 주로 BuildContext 타입을 의미합니다. Flutter 위젯 트리에서 특정 위젯의 위치 및 상태에 대한 정보를 담고 있습니다. 이 context를 통해 부모-자식 관계, 테마, 화면 크기, Navigator 등의 여러 기능에 접근할 수 있습니다.context의 역할Flu.. 2024. 11. 15.
과제중 생각한 것들 Container(            height: 582,            child: ListView(              children: seatListGen(),            ),    ListWidget> seatListGen() {    return List.generate(20, (index) => rowSeat(index + 1));  } Column안에 listview를 넣으려니 높이때문에 오류가 생김.방법을 찾다가 container안에 넣어서 Column안에 넣어줌.listview 안에 넣을 항목들이 너무 반복되어 고민.결과적으로 list.generate로 사용함. 2024. 11. 14.
다트문법_List<int> a = [0,0]; a == [0,0]; → false?? 코딩 테스트 중아래와 같이 코딩했는데 의도한 답이 나오지 않았다. List a = [0,0];print(a == [0,0]); 당연히 true인 줄 알았는데....false????? 챗gpt에게 설명을 요청해봄.  Dart에서 List의 비교는 참조(Reference) 비교를 기준으로 이루어지기 때문에 다음과 같은 코드에서 false가 나오는 것입니다. 이유List a = [0, 0];는 새로운 리스트 객체를 만듭니다.[0, 0]은 또 다른 새로운 리스트 객체입니다.Dart에서 == 연산자는 두 리스트가 같은 메모리 주소를 참조하는지를 확인합니다.즉, 두 리스트가 같은 객체인지 비교하는 것입니다.a와 [0, 0]은 서로 다른 객체이기 때문에 false를 반환합니다. 비교하고 싶다면import 'packa.. 2024. 11. 13.
dart문법_List.generate List.generate()는 Dart에서 리스트(List)를 생성할 때 사용하는 유용한 메서드입니다. 주어진 크기만큼의 리스트를 생성하고, 각 요소를 특정 규칙에 따라 초기화할 수 있도록 해줍니다.기본 구조dart코드 복사List.generate(length, (index) => element)매개변수 설명length: 생성할 리스트의 길이 (즉, 리스트 안에 몇 개의 요소가 들어갈지 지정).(index) => element: 각 요소를 초기화하는 함수. 이 함수는 **현재 인덱스(index)**를 인자로 받아 해당 위치에 들어갈 값을 반환합니다.리턴값List.generate()는 길이가 length인 리스트를 반환하며, 각 요소는 (index) => element 함수에 따라 초기화됩니다.예제 1: .. 2024. 11. 12.
오늘 배운 이것 저것. Flutter 기초 MaterialApp vs CupertinoApp- MaterialApp은 Google의 디자인 - CupertinoApp은 Apple의 디자인 레이아웃 나누기세로 : Row, 가로 : Column 자료 파일 추가시 pubspec.yaml 수정할것.ex) assets 폴더가 주석 처리되어 있 SafeArea 위젯: 핸드폰 화며 상단의 알림표시줄을 가리지 않게 하는 위젯 Text 위젲 사용 예시Text("Woman", style: TextStyle(fontWeight: FontWeight.bold)), 2024. 11. 11.
프로젝트 진행하며 배운 몇 가지들..(문법) print(min(0, 5)); // 둘 중 작은 값 리턴print(max(0, 5));  // 둘 중 큰 값 리턴 int damage = max(0, attack - monster.defense); 굉장히 간단한 함수인데 별거 아니다 싶은데이걸 나는 조건문으로 처리했다. 눈에 익혀두고 자연스럽게 생각 날 수 있도록 해야겠다. 코드 리뷰시간에 max함수 보는데 코드가 간단하고 깔끔하게 정리되는 것이 놀라웠음. 2024. 11. 8.
3주차 과제 콘솔 전투 RPG 게임 트러블 슈팅 1. 문제 정의    - monster클래스를 만듬. game클래스에서 monster 생성자 생성하면서 정의.      game에서 정의된 monster클래스의 변수를 character클래스에서 사용하고 싶은데      방법을 알지 못함 2. 사실 수집    - character클래스에서 정의된 함수를 game에서 실행해야 함. 3. 원인 추론    - 클래스를 이용하는 방법 미숙 4. 조사 방법 결정    - 구글 서칭 5. 조사 방법 구현    - character클래스에서 정의된 함수를 game에서 호출할 때 monster를 매개변수로 전달     - 전달된 매개변수 monster을 이용하여 character클래스에서 사용 6. 결과 관찰    - 원하는 값 도출 2024. 11. 7.
다트문법_random함수 import 'dart:math'; int i = Random().nextInt(최대값); 최대값이 5면 0~4까지만 반환됨. 2024. 11. 6.
dart에서 파일 저장하기 var file = File('../save/result.txt');   fileSave(){     String contents = '입력내용 var file = File('../save/result.txt');  fileSave(){    String contents = '입력내용';     file.writeAsStringSync(contents);   } 2024. 11. 5.
프로젝트 진행하며 배운 몇 가지들.. final file = File('../assets/characters.txt');다른 폴더의 파일을 쓰고 싶은데 작업하는 폴더의 밖에 있는 폴더일 경우앞에 '..'을 추가하여 루트폴더에서 찾아가는 경로를 만들어 해결. List monsterList = []클래스를 '자료형'으로 하는 List를 만들 수 있음. RegExp regex = RegExp(r'^[a-zA-Z가-힣]+$');정규표현식 - 영문, 한글 2024. 11. 4.