본문 바로가기

다트(Dart)11

다트(Dart) Mixin 생성자가 없는 클래스로 클래스를 다중상속을 할 수 있게 만든 클래스다. 쉽게 말해 Mixin 클래스를 만들면 아무 클래스에서나 가져다가 쓸 수 있다. 아래의 예를 보면 Mixin 클래스 2개를 마지막 클래스가 with로 전부 상속 받는다. 이런 식으로 씀... class Name{ var name = 'jin'; } class Age{ void age(){ print("I am 20"); } } class Jin with Name, Age{ } 2023. 3. 15.
다트(Dart) Cascade Notation / Enum type 순서 Cascade Notation Enum type Cascade Notation ' .. ' 위의 모양이 Cascade Notation 다. 이 것을 사용하면 하나의 객체에 함수 호출, 필드 접근을 수행할 수 있다. 쉽게 말해서 어떤 객체가 만들어졌으면 바로 아래에 저 모양을 쓰면 그 객체 자체로 인식한다는 말이다. 이걸 사용하는 중간에 어떤 값이 반환되더라도 무시하고 순차적으로 접근만 한다. 말이 좀 어려운데 그냥 아래의 예를 보자. guy 라는 객체를 만들었고 그 객체 안에 있는 이름과 나이를 각각 바꿨다. void main() { var guy = Guy(name : 'jin', age : 20); guy.name = 'lee'; guy.age = 25; } // 클래스 선언 class Guy{.. 2023. 3. 15.
다트(Dart) 클래스 / 생성자 / Named Constructor Parameters / Named Constructor 순서 클래스와 생성자 Named Constructor Parameters Named Constructor 클래스와 생성자 자바와 방법이 비슷하기 때문에 예시로 넘어가도 될 것 같다. 주석에 설명들을 달아놨다. void main() { var guy = Guy('jin', 20); guy.Hello(); } // 클래스 선언 class Guy{ final String name; int age; // 생성자 생성 Guy(this.name, this.age); void Hello(){ var name = 'Lee'; // 메소드 안에 같은 이름의 변수가 있다면 this 사용 가능 // 하지면 없다면 웬만하면 this 안 쓰는 걸 다트에서 추천. // this를 안써도 this로 사용 됨. print("Hell.. 2023. 3. 15.
다트(Dart) typedef 클래스에 별칭을 달아주는 선언자다. 간단한 클래스의 별칭을 달 때 사용한다. 복잡도가 올라가면 그냥 별칭이름을 한 클래스를 만드는 게 낫다. 아래의 예를 보면 mapMan 이라는 별명으로 Map 클래스를 지정을 하고 시작했다. typedef mapMan = Map; void main() { Hello({'name' : 'jin'}); } // 함수 선언 String Hello(mapMan map){ return "Hello, ${map['name']}"; } 2023. 3. 14.
다트(Dart) 연산자 순서 QQ Operator(Question Question Operator) QQ Assignment Operator 기본적인 연산자는 자바와 똑같다 여기서는 다트에서 사용되는 것 중 2가지만 다룰 예정이다. QQ Operator(Question Question Operator) 기호 : ?? 기호를 기준으로 왼쪽이 null이 아니라면 왼쪽값, null이면 오른쪽 값을 낸다. 똑같은 기능인 삼항 연산자와 비교해서 예를 아래에 들었다, // 삼항 연산자 name != null ? name.toUpperCase() : 'default'; // ?? 연산자 name.toUpperCase() ?? 'default'; 이를 활용하면 void main() { print(HelloCap('jin')); } // ??.. 2023. 3. 14.
다트(Dart) 함수 순서 선언 Named Parameters Optional Positional Parameters 선언 마찬가지로 기본적인 모양은 Java와 비슷하다. 타입 + 함수명 + 파라미터 + 내용 으로 구성되어 있다. 한 줄 정도의 내용이라면 화살표 함수로 처리가 가능하다. 화살표는 쉽게 말해 매개변수를 넣으면 화살표 뒤를 리턴해준다는 의미다. 아래의 예를 보면 이해가 빠르다. void main() { Hello('jin'); print(Hello2('jin')); } // 함수 선언 void Hello(String name){ print("Hello, $name"); } // fat arrow syntax String Hello2(String name) => "Hello, $name"; // 결과 Hello, .. 2023. 3. 14.
다트(Dart) 자료형 - Maps과 Set 순서 Maps Set Maps 자바의 Maps과 똑같다. Key와 Value 로 이루져있고 각각의 메소드들이 만들어져 있다. 아래의 예를 보면 이해가 빠르다. 복잡도가 높은 object를 만들거라면 굳이 Maps을 복합으로 쓰지 않고 그냥 하나의 클래스를 만들어서 쓰는 게 낫다. void main() { // var로 생성 var friend = { 'name' : 'jin', 'age' : 19, }; // Map으로 생성 Map friend2= { 'jin' : 19, 'ryu' : 29, }; // Map의 복합 List friend3= [ { 'jin' : 19, 'ryu' : 29 }, { 'Lee' : 19, 'Park' : 29 }, ]; } Set List와 비슷하다. 다른 점은 Set의 .. 2023. 3. 12.
다트(Dart) 자료형 - List / String Interpolation / Collection 순서 List String Interpolation Collection if Collection for 이 역시도 자바와 비슷하다. List 의 선언 및 메소드 예시는 아래와 같다. void main() { // 선언 var numbers = [1, 2, 3]; List numbers2 = [4, 5, 6]; // 첫번째 요소를 가져온다. numbers.first; // 마지막 요소를 가져온다. numbers.last; // 비어있는지 확인 numbers.isEmpty; // 요소 추가 numbers.add(1); } String Interpolation $ 기호 뒤에 변수를 사용하면 해당 변수의 값이 들어가게 된다. 아래의 예를 보면 이해가 빠르다. void main() { var s = "jin"; .. 2023. 3. 10.
다트(Dart) 자료형 - 기본형 자바랑 크게 다르지 않다. String ( 홑따옴표, 쌍따옴표 상관없이 사용 가능) int bool double 등등이 있다. 한가지 참고할 점은 int / double 같은 자료형은 num이라는 하나의 클래스에서 파생되었다. 그래서 아래와 같은 사용도 가능하다. void main() { String name = 'jin'; String name2 = "jjin"; bool man = true; int age = 30; double money = 8000.55; num money2 = 20; money2 = 20.8999; } 2023. 3. 10.
다트(Dart) Null safety 다트에는 변수의 타입에 null 이 있을 수 있음을 명시하는 방법이 있다. 미리 null 이 있다고 선언함으로써 null 이 생겼을 때 알아서 다트가 처리를 하게 한다. 아래의 예시를 보면 String 뒤에 ? 가 붙어 있는 게 보인다. 이게 null 이 있을 수 있다고 선언을 하는 부분이다. 이렇게 Nullable 변수를 사용하면 null 값에 대한 처리가 편해진다. 특히, API 에서 data를 받아올 때 많이 쓴다. void main() { String? name = 'jin'; name = null; } 2023. 3. 10.
728x90
반응형