새소식

반응형
개발기록/Flutter

[flutter log] 기초 문법

  • -
반응형

안녕하세요 성장형 개발자입니다.

플러터 공부 중입니다
오늘 공부한 내용을 적어보았습니다

공부한 내용 : flutter 기초 문법

1. 주석 작성
// 한 줄 주석
/* 
* 여러 줄 주석
* 중간 줄 시작으로 *를 사용
*/ 
/// 슬래시 세개는 문서 주석

2. 콘솔 출력
print() 문자열 출력

3. 변수 선언
var 변수명 = 값; 
자동으로 타입을 추론하는 기능을 제공
타입을 한 번 유추하면 추론된 타입이 고정 -> 고정이 된 변수에 다른 타입의 변수를 저장 시 에러 발생
dynamic 변수 = 값;
사용하면 변수의 타입이 고정되지 않아서 다른 타입도 저장 가능

final, const 키워드는 변수의 값을 처음 선언 후에는 변경 할 수 없음
final -> 런타임(실행을 해봐야 값을 알 수 있음)
const -> 빌드타임
 실행될 때 확정 : final
 코드를 실행하지 않은 상태 값이 확정 : const

4. 변수 타입
 모든 변수는 고유의 변수 타입을 가지고 있음.
 var 키워드를 사용하면 자동으로 변수 타입 유추 가능하지만 직접적으로 변수 타입을 명시해주면 코드가 더욱 직관적으로 되고 유지보수에 편하다 -> 직접 타입을 지정해야 하는게 좋다

다트는 프로그램 시작점(엔트리 함수 기호) : main()

컬렉션 : 여러 값을 하나의 변수에 저장할 수 있는 타입 -> 서로의 타입을 자유롭게 형변환이 가능하다는 장점
 ㅇ List : 여러 값을 순서대로 저장
  -> 리스트명[인덱스] : 인덱스는 원소의 순번(제일 첫 원소 0, 마지막 원소 -1)
  -> 리스트 길이 : 리스트명.length
  -> add() : List에 값을 추가할 때 사용, 추가 시 리스트의 끝에 추가 된다.
  -> where() : 리스트의 값들을 순서대로 순회하면서 특정 조건에 맞는 값만 필터링하는데 사용
  -> map() : 리스트의 값들을 순서대로 순회하면서 값을 변경 가능, 반환하는 값이 현재값을 대체
  -> reduce() : 리스트의 값들을 순서대로 순회, 순회할때마다 값을 쌓아감. 실행되는 리스트 요소들의 타입이 같아야함
  -> fold() : reduce() 함수와 실행되는 논리는 같음. 어떠한 타입이든 반환 가능(reduce와 다른 점)

 ㅇ Map : 특정 키값을 기반으로 빠르게 값을 검색(key : value) -> 원하는 값을 빠르게 찾는데 중점
  
 ㅇ Set : 중복된 데이터를 제거할 때 사용(중복 없는 값들의 집합)
  -> 중복을 방지하므로 유일한 값들만 존재하는 걸 보장

 ㅇ enum : 한 변수의 값을 몇가지 옵션으로 제한, 선택지가 제한적일 때 사용
  -> 기본적으로 자동 완성이 지원, 정확히 어떤 선택지가 존재하는지 정의해둘 수 있기에 유용(ex. 시작, 진행 중, 종료)

 연산자
 ㅇ 기본연산자, 값 비교 연산자, 논리 연산자는 알고 있는 부분이라서 따로 안적음
 ㅇ null 관련 연산자 
  -> 다트 언어에서는 변수 타입이 null값을 가지는지 여부를 직접 지정해줘야 함
  -> 타입 키워드를 그대로 사용하면 기본적으로 null값이 저장될 수 없음
  -> 타입 뒤에 ? 를 추가해줘야 null값 저장 가능(ex. double? testnum = 1;)
  -> ?? 를 사용하면 null일 때만 값이 저장
 ㅇ 타입 비교 연산자
  -> is 키워드를 사용하면 비교 가능

제어문 (크게 다른 것 없음)
 ㅇ if
 ㅇ switch
  -> case 끝에 break 키워드 무조건 사용(빼먹으면 컴파일 중 에러 발생)
  -> enum과 함께 사용하면 유용
 ㅇ for
  -> 다트에서는 for...in 패턴도 제공 

함수와 람다
 ㅇ 함수의 일반적 특징
  -> 한번만 작성하고 여러 곳에서 재활용 가능
  -> 반환할 값이 없는 경우는 void키워드 사용
  -> required 키워드 : 매개변수가 null값이 불가능한 타입이면 기본값을 지정해주거나 필수로 입력해야 한다는 의미
  -> 포지션널 파라미터 사용시 [] 사용

 ㅇ 익명함수, 람다함수
  -> 둘 다 함수 이름이 없음
  -> 일회성을 사용
  -> 익명 함수 {} 람다 함수 =>
  -> 람다 함수는 => 단 하나의 스테이트먼트 -> 간결한 코드 작성 가능, 가독성 높음, 일회성이 높은 로직을 작성할 때 주로 사용(map, reduce, fold)

 ㅇ typedef
  -> 함수의 시그니처를 정의하는 값
  -> 함수 선언부를 정의하는 키워드
  -> 함수가 무슨 동작을 하는지에 대한 정의는 없음
  -> 다트에서 함수는 일급 객체 -> 함수를 값처럼 사용 가능

 ㅇ try~catch
  -> try와 catch 사이의 괄호에 에러가 없을 때 실행할 로직을 작성, catch가 감싸는 괄호는 에러가 났을 때 실행할 로직 작성
  -> try로직에서 에러가 나면 이후 로직 실행되지 않고 바로 catch 로직으로 넘어감
  -> throw 키워드 사용해서 고의적 에러 발생 가능

 
코드팩토리의 플러터 프로그래밍
저자는 왕초보 실력을 현업 수준으로 끌어올리기를 목표로 이 책을 썼습니다. 배운 이론을 곧바로 실무에 진짜 유용한 기능을 담은 앱을 만들며 익힐 수 있게 합니다. 모든 앱은 결과가 아니라 실제 프로젝트 현장에서 구현하듯이 과정을 보여주며 만듭니다. 변경하거나 수정한 코드를 확실하게 표시해 따라하기 쉽습니다. [프로젝트 소개] ➝ [사전 지식] ➝ [준비하기] ➝ [UI 구상하기] ➝ [구현하기] ➝ [테스트하기] 순서를 꼭 지켜서 앱 개발을 체계적으로 이끌어줍니다. 초보자 눈높이에 맞추면서, 다트 언어 입문부터 개발과 광고와 배포까지 현업에 도움이 될 실무적이고 활용도 높은 노하우를 담아 설명했기 때문에 탄탄하면서도 빠르게 스킬업되는 자신을 체감하게 될 겁니다.
저자
최지호(코드팩토리)
출판
골든래빗(주)
출판일
2023.01.01
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.