#3.0 Defining a function
void: 함수에서 리턴을 하지 않는다는 의미
//리턴을 하지 않는 것
void sayHello(String name) {
print("Hello $name nice to meet you!");
}
String sayHello1(String name) {
return "Hello $name nice to meet you!";
}
String sayHello2(String name) => "Hello $name nice to meet you!";
num plus(num a, num b) => a + b;
void main() {
sayHello("park");
print(sayHello1("lee"));
print(sayHello2("kim"));
print(plus(1, 2));
print(plus(1.1, 2));
print(plus(1.1, 2.2));
}
=> 화살표를 사용해서, 리턴을 생략할 수 있다. 함수 선언 초기 키워드에 반환하는 타입을 지정한다.
#3.1 Named Parameters
인자의 순서를 개발자가 외워서 전달하는 대신, 명시적으로 어떤 인자값에 어떤 값을 전달할지 작성
String sayHello(String name,int age, String country) {
return "Hello $name, you are $age, and you come from $country";
}
String sayHello1({
String name = 'kim',
int age = 22,
String country = 'Korea'
}) {
return "Hello $name, you are $age, and you come from $country";
}
String sayHello2({
required String name,
required int age,
required String country
}) {
return "Hello $name, you are $age, and you come from $country";
}
void main() {
//print(sayHello('park', 24, 'korea'))
print(sayHello1(
name : 'park',
));
print(sayHello1(
name : 'park',
));
print(sayHello2(
name : 'park',
age : 12,
country : 'Korea'
));
}
Named Parameter를 사용하는 방법은 두가지가 존재하는데, 중괄호를 묶어서 Named Parameter를 사용한다는 것을 명시한다.
paratmeter에 값을 넣지 않으면, null이 될 수 있는 문제가 존재한다.
1. default value를 지정해, 인자가 null이 되는 것을 방지할 수 있다.
2. required 키워드를 통해서 인자에 값을 가져야한다는 것을 명시할 수 있다.
#3.3 Optional Positional Parameters
Positional Parameters는 순서에 맞게 인자를 입력해야한다.
Named Parameter를 적용하고 싶지 않지만, 인자가 required 되지 않게 하기 위해 사용
String sayHello(
String name,
int age,
[String? country = 'korea']
)
=> "Hello $name, you are $age you come from $country";
void main() {
print(sayHello('park', 13, null));
}
마지막 인자가 꼭 필요하지 않기 때문에, 대괄호를 묶고 ?를 표시해서 nullable을 지정하고, default value를 지정해서 사용할 수 있다.
#3.4 QQ Operator
(좌측) ?? (우측)
좌측이 Null이 아니면, 좌측을 리턴하고, 좌측이 Null이면 우측을 리턴한다.
String capitalizeName(String? name)
=> name?.toUpperCase() ?? 'ANON';
void main() {
print(capitalizeName(null));
print(capitalizeName('park'));
}
void main() {
String? name;
name ??= 'park';
name ??= 'Another';
print(name);
}
??= 연산자는 왼쪽의 변수가 null일때 값을 할당해준다.
#3.5 Typedef
좀 더 간단한 데이터 타입에 대한 명칭을 주기 위해 사용
typedef ListOfInts = List<int>;
ListOfInts reverseListOfNumbers(ListOfInts list) {
var reversed = list.reversed;
return reversed.toList();
}
void main() {
print([1,2,3]);
}
출처 및 참고자료
Dart 시작하기 – 노마드 코더 Nomad Coders
Flutter 앱 개발을 위한 Dart 배우기
nomadcoders.co
'Development > Dart' 카테고리의 다른 글
| [Dart] #4 Classes (0) | 2025.03.18 |
|---|---|
| [Dart] #2 Data Types (0) | 2025.03.10 |
| [Dart] #1 Variables (0) | 2025.03.09 |