자바스크립트를 대체하려다 실패한 다트는가장 쓸모없는 언어로 여겨졌지만플러터가 잘되면서 재조명되고 있다단순히 플러터 덕으로 다트가 쓰인다기 보다는플러터가 다트라는 언어를 사용하기 때문에 좋은점이 있다다트는 객체지향이면서 C언어와 유사한 문법을 사용한다또한 실행중인 앱에
특정 문맥에서 특별한 의미를 가지는 키워드다특정 문맥이 아닌 곳에서는 식별자로 사용 가능하지만그런 행동은 하지 않는 편이 대체로 좋다..sync, async, hide, on, showshow - 라이브러리 import 시 라이브러리의 일부만 사용하고 싶을 때 사용aw
다트는 완전한 객체 지향 언어다따라서 모든 것이 객체함수 또한 객체다함수가 객체이기 때문에 변수가 함수를 참조할 수 있다함수의 인자로 함수를 전달할 수도 있다익명 함수와 람다식도 지원한다또한 선택 매개변수를 지원한다선택 매개 변수에는이름이 있는 선택 매개변수와 위치적
~/ : 몫 연산자로 항상 정수 값을 리턴~/= : 몫 연산자의 결과를 좌항의 값에 추가하여 할당& | ^ ~ << >>& | ^ ~ 는 각각 AND, OR, XOR, NOT 을 의미한다XOR - 베타적 논리 합으로 두 개의 명제 가운데 하나만 참일 경우as
다트는 모든 것이 객체인 완전 객체지향 언어다모든 객체는 클래스의 인스턴스다모든 클래스는 Object 클래스의 자식이다클래스는 멤버를 가진다멤버는 멤버 함수(메소드)와 멤버 변수(인스턴스 변수)로 구성된다클래스를 사용하려면 객체를 생성해야 한다객체를 생성하는 것은 클래
객체지향 프로그래밍의 꼬츠다상속은 클래스의 멤버를 물려주는 것을 말한다물려주는 쪽은 부모 클래스 - Super Class상속 받는 쪽은 자식 클래스 - Sub Class상속은 상속받는 쪽에서 부모 클래스에 대해 extends 키워드로 구현한다@override 는 어노테
그리고 4대 특징1\. 추상화2\. 캡슐화3\. 상속4\. 다형성접근 지정자는 캡슐화의 정보 은닉과 관련이 있다연관된 목적을 가지는 객체의 속성(필드)과 행위(메소드)를 클래스로 묶어 하나의 기능을 수행하는 객체를 만들고구현에 사용된 상세 내용을 외부에 감춘다정보 은닉
추상 클래스는 추상 메소드를 가질 수 있는 클래스다 필수적으로 포함해야 하는 것은 아니다일반 클래스에는 추상 메소드를 선언할 수 없다주상 메소드는 미완성된 메소드로 선언은 되어있지만 몸체가 없는 함수이다interface와 조금 다른듯 하다추상 클래스는 abstract
컬렉션은 다수의 데이터를 처리할 수 있는 자료구조List: 순서가 있고 중복 허용Set: 순서가 없고 중복 허용하지 않음Map: Key: Value 형식으로 키는 중복되지 않고 값은 중복 가능, 순서 없음보통 컬렉션을 가지는 언어에서는 기본이 array 지만다트에서는
제네릭은 매개변수를 통해 다양한 타입에 대한 유연함을 갖게 한다타입 매개변수는 <>로 감싸서 지정한다타입 매개변수를 선언하는 것은 매개변수화 타입을 정의한다고 말한다매개변수는 클래스 생성 시 생성자에서 사용하거나함수 호출 시 인자를 받기 위해 사용한다타입 매개변수
future, stream 을 통해 비동기 프로그래밍을 지원한다그 전에 isolate라는 다트의 구조부터 알아야 한다격리하다는 뜻을 가졌다isolate는 다트의 코드가 실행되는 공간이다싱글 스레드를 가지고 있고 이벤트 루프를 통해 작업을 처리한다기본 isolate인 m
future는 비동기 메소드로 다른 언어에서도 종종 사용된다고 한다자바스크립트의 promise 와 비슷한 역할을 하는듯Uncompleted - 미완료: future 객체를 만들어서 작업을 요청한 상태Completed - 완료: 요청한 작업 완료 상태2-1. data -
future가 하나의 데이터를 .then() 으로 전달받았다면 stream 은 연속된 데이터를 .listen() 을 통해 비동기적으로 처리할 수 있다스트리밍 서비스의 동작 방식과 같다stream 은 구독자 패턴(Observer pattern) 이다 관찰 대상을 구독하여
main() 함수가 있어야한다dart는 세미콜론이 필수 (자동완성 없음) - 생략하는 경우가 있다var 키워드로 변수를 선언하면 타입 추론을 한다한 번 사용된 변수는 해당 타입만 들어가야 함any 같은 type 이지만 조금 다르다조건문 안에서 타입이 확정되는 순간 부터
다트에서는 타입 어노테이션을 변수 이전에 작성한다함수에서는 return 에 대한 타입을 선언해줘야 한다fat arrow syntax 로 중괄호와 return 문을 생략하여 작성할 수 있다flutter 에서 자주 사용된다이런 식으로 작성한다면 함수 사용자가 인자에 대한
Class가 가장 중요한 개념이다다른 언어의 Class와 어떻게 다른지도 중요하다class 에서 프로퍼티를 정의할 때에는 type 을 꼭 명시해줘야 한다new 키워드는 생략할 수 있지만.. 고민된다dart class 에서는 메소드 내부의 this를 생략한다 (사용은 가
enum type은 플러터에서 굉장히 많이 사용되는 타입이다실수를 방지해주기 때문
추상화 클래스: 해당 클래스를 상속받는 클래스들이 어떤 클래스가 될지 정의해둔 클래스추상화 메소드: 추상화 클래스에서 다른 클래스들이 구현해야하는 메소드를 정의해 놓은 부분플러터에서 자주 사용되지는 않는다
상속 받은 name 필드를 자식에서 부모로 전달하기 위해자식의 생성자 뒤에 : super() 사용한다자식에서 받은 생성자 함수의 매개변수에서 받은 값을 그대로 부모 클래스로 전달상속 관계에서 같은 매개변수를 갖는 메소드를 다른 기능으로 재정의 하는 것super 키워드를
생성자가 없는 클래스로 클래스에 프로퍼티 등을 추가할 때 사용한다with 키워드를 사용하여 Mixin 클래스를 여러개 받아올 수 있다