본문 바로가기

728x90

Language Syntax

(5)
[Dart] factory 예약어에 대한 고찰 1. 개요Dart 에서는 factory 의 예약어가 존재한다. 이것이 어떻게 쓰이는지에 대해 살펴보자.2. 설명factory 예약어는 생성자를 정의할 때 사용되고, 객체를 생성하는 과정을 제어할 수 있도록 있도록 하는 특별한 예약어이다.3. 혼동될 여지가 있는 문법들Dart 에서 MyClass.name() 와 같이 표현될 수 있는 형태는 여러 가지가 존재한다. 따라서 실제 그 구현부를 확인하지 않고 해당 클래스를 사용하는 경우, 혼란을 야기할 수 있다. 다음의 세 가지 경우가 전술한 형태로 표현된다.정적 메소드 (Static Method)명명된 생성자 (Named Constructor)팩토리 생성자 (factory constructor)3.1. 정적 메소드 (Static Method)정적 메소드는 특정 ..
[Python] 논리 연산에 대한 고찰 1. 개요대부분의 언어는 같은 형식의 데이터끼리만 논리 연산을 할 수 있다. 하지만 Python 은 형식이 달라도 논리 연산이 가능하다는 특징이 있다. 이 포스팅에서는 Python 의 논리 연산자 (Logical Operator) and, or, not 이 어떻게 동작하는지에 대해 자세히 살펴보고자 한다.2. 비 Python 의 논리 연산대부분의 언어는 논리 연산자로 &&, ||, ! 를 사용한다.&& : 논리곱 (and)|| : 논리합 (or)! : 부정 (not)위 세 연산자(Operator)와 편의상 A (왼쪽) 와 B (오른쪽) 의 피연산자(Operand)를 사용한 다음과 같은 식의 연산값에 대해 살펴보도록 하자.A && BA || B!A기본적으로 위 연산의 결과값은 bool 형식을 나타내며, 다..
[Dart] 널 세이프티 (Null Safety) 1. 개요 Dart 에서는 2.0 버전부터 null 값에 대하여 안전한 대응이 가능하도록 하는 Null Safety 를 도입하였다. 이번 포스팅에서는 이것이 적용된 이유와 이와 관련된 여러 가지 문법에 대해 알아보고자 한다. 2. 적용 이유 Null Safety는 예상치 못한 null 값에 대한 오류에 대한 검출을 런타임 오류가 아닌 컴파일 오류 차원에서 가능하도록 할 수 있다. 다음의 예시에서 확인할 수 있다. bool isEmpty(String str) => str.length == 0; void main() { isEmpty(null); } [출처: Dart 공식 문서] 위 코드는 NoSuchMethodError 를 발생시킨다. Null 클래스에는 length 라는 getter 가 존재하지 않기 때..
[Dart] 익스텐션 (Extension) 1. 개요 Dart 에는 Extension 문법이 존재한다. 어떠한 수정 불가능한 클래스에 대하여 메소드를 추가/수정 하고 싶을 경우 Extension 을 사용할 수 있다. 2. 사용 extension [extension 이름] on [타입] {} 와 같이 사용된다. class A { void methodA() {} } 위 예시와 같이 클래스 A 는 methodA() 를 가지고 있다. 이때, methodB() 도 추가하고 싶지만, 클래스 A 를 수정할 수 없다면 Extension 을 사용 가능하다. extension AExtension on A { void methodB() {} } 위와 같이 나타내면 다음과 같은 사용이 가능해진다. A().methodB(); 예시를 살펴보자. 3. 예시 Dart 에서는..
[Dart] get / set 1. 개요 Dart 에서는 getter 를 나타낼 때 get, setter 를 나타낼 때 set 이라는 키워드를 사용한다. 각각이 어떠한 때에 사용되는지 살펴보자. 2. Java 의 getter/setter Java 에서는 private 한 속성을 외부에서 접근하거나 변경하고 싶을 때 보통 getter 와 setter 를 사용한다. 2.1. 예시 public class Student { private String id; public Student(String id) { this.id = id; } public String getId() { return id; } public void setId(String id) { this.id = id; } } public class Main { public stat..

728x90