백엔드 개발을 하면서 Optional이 자주 쓰인다. 기능들에 대해 잘 아는 것도 좋지만, Optional에 대해 어느 정도의 이해도를 가지고 용도에 맞게 사용하는지도 중요하다는 생각이 들어서 정리해보겠다. Optional이란?Optional은 Java8 버전부터 도입되었으며, '값이 없는 경우'를 표현하기 위한 용도로 사용되는 클래스이다. Optional 클래스는 Java 제네릭을 사용하여 만들어져 있으므로, 어떤 타입의 객체라도 값이 없을 수 있는 겨우에 Optional을 사용하여 표현할 수 있다. 그러면, Optional이 왜 만들어졌고, 어떨 때 사용하면 되는지 알아보자. Optional 사용 목적API 공식 문서에 보면 Optional을 만든 의도가 다음과 같이 적혀있다. API Note :Op..
학습
Cascade Notation(Cascade Operator)기존에 클래스를 생성하고 해당 객체의 값을 변경하려면 다음과 같이 작성해야했다. Dart에서는 이렇게 taek.~~~ 이 중복을 줄일 수 있도록 할 수 있다고 한다.변경된 소스코드는 다음과 같다.class Player { String name; int xp; String team; Player({ required this.name, required this.xp, required this.team, }); void sayHello() { print("Hi, my name is $name"); }}void main() { var taek = Player(name: 'taek', xp: 1200, team: 'r..
Named Constructor Parameters이전 포스팅을 보면 function처럼 argument를 받아서 클래스를 생성한다. 그러나 이건 class가 커질수록 argument가 많아져서 관리하기가 힘들다. function처럼 named parameters를 적용하기만 하면 된다. class Player { final String name; int xp; String team; int age; Player({ required this.name, required this.xp, required this.team, required this.age, }); void sayHello() { print("Hi my name is $name"); }}void main..
1. Class가장 중요한 class에 대해서 알아보자. 다른 언어와의 차이점에 대해서도 잘 알아보아야 한다. 예로 Player라는 클래스를 작성해본다.class Player { String name = 'taek'; int xp = 1500; void sayHello() { print("Hi my name is $name"); }}void main() { // var player = new Player(); // new를 써도 되고 안써도된다. var player = Player(); print(player.name); player.name = 'lalala'; print(player.name);} class에서 property를 선언할때는 타입을 사용해서 정의한다. 이전 포..
1. Optional Positional ParametersString sayHello( String name, int age, [String? country = 'korea']) => 'Hello $name, you are $age years old from $country';void main() { var result = sayHello('taek', 20); print(result);}일부 parameter에 null을 받으면 default value를 설정할 수 있게 한다.형식은 메서드의 매개변수에 대괄호[]를 하고 타입 뒤에 ?를 붙여서 null이 가능하게 만든 다음, 뒤에 default value를 설정해주는 것이다. 2. QQ Operator(Question Question..
1. Defining a FunctionString sayHello(String name) { return 'Hello ${name} nice to meet you!';}void main() { print(sayHello('taek'));}기본적인 함수 정의는 자바와 비슷하다. 한줄짜리 함수는 fat arrow syntax를 적용시킬 수 있다.fat arrow syntax는 곧바로 return 하는 거랑 같은 의미이다.String sayHello(String name) =>'Hello ${name} nice to meet you!';// 더하기 함수num plus(num a, num b) => a + b;void main() { print(sayHello('taek'));} 2. Named Par..