- void main() 함수 안에 함수나 코드가 들어있어야 동작함
void
- 아무것도 리턴하지 않는다.
- void 안에 return을 명시하면 에러가 난다.
#void: 함수 내에 return하지 않음
void Hello(String name) {
print("My name is $name")
}
#void - return: error 발생
void Hello(String name) {
return("My name is $name")
}
#void > String으로 변경, return 유지: String을 return 하는 함수가 됨
String Hello(String name) {
return("My name is $name")
}
#곧바로 리턴하는 경우 fat arrow return을 사용 가능
String Hello(String name) => "My name is $name"
Named Parameter
- 많은 파라미터를 담아서 보내고 싶을때 유용
- 파라미터의 위치를 기억하고 싶지 않을때 사용
#보통의 함수: 이름, 나이, 국적을 나타내고자 할때
String myInfo(String name, int age, String country) {
return("My name is $name. i'm $age, i'm from $country");
}
void main() {
print(myInfo("mansoor", 20, "UK"));
}
- 정의한 함수의 파라미터들의 위치를 기억해야함
- main안에서 함수가 실행되면 파라미터가 뭘 의미하는지 모름
- 정의한 함수의 파라미터를 {}로 감싸줌
- main안에서 함수가 실행될때 "파라미터: 값" 형식으로 작성해줌(위치 무관)
#named parameter적용
String myInfo({String name, int age, String country}) {
return "My name is $name, i am $age, i am $country";
}
void main() {
print(
myInfo(age: 20, country: "UK", name: "mansoor")
);
}
- 하지만 이렇게 써도 문제 발생
- null safety가 발생되며 값을 넣어 주지 않을 경우 에러가 난다는 경고가 나타남
- 따라서 파라미터에 default값을 넣어주거나 required를 설정
#named parameter적용 & default값 적용
String myInfo({String name="dhsl", int age=22, String country="america"}) {
return "My name is $name, i am $age, i am $country";
}
#named parameter적용 & required 적용
String myInfo({required String name, required int age, required String country}) {
return "My name is $name, i am $age, i am $country";
}
void main() {
print(
myInfo(age: 20, country: "UK", name: "mansoor")
);
}
Optional Positional Parameter
- required로 설정하지 않고 main안에서 정의한 함수의 파라미터를 쓰고 싶지 않을 경우
- 대괄호로 감싸주고 null이 될 수 있음을 명시해 준다.
#Optional Positional Parameter
String myInfo(
String name,
int age,
[String? country="ghsl"]
) {
return "My name is $name, i am $age, i am $country";
}
void main() {
print(
myInfo("mansoor", 20) #country를 명시하지 않아도 실행됨
);
}