flutter에서 사용하는 dart 언어의 함수 알아보기
오늘도 flutter에서 사용하는 dart언어를 알아보려 합니다.
이번 포스팅에서는 함수에 대해서 작성합니다.
함수
함수도 function 타입의 객체이므로 함수를 변수에 할당할 수 있고, 인자로도 건내줄 수 있습니다.
void main() {
void test() {
print("hello, world!");
}
test();
test2() {
print("hello, world!");
}
test2();
void test3() => print("hello, world!");
test3();
기본적으로 함수는 위와 같은 형태로 작성되고, 타입은 생략되어 유추될 수 있습니다.
식이 한 줄이면 화살표로 축약할 수 있습니다.
void test4(bool trig,bool option){
if(trig){
print(option);
}
}
test4(true, false);
void test5({bool trig, bool option}) {
if(trig){
print(option);
}
}
test5(trig: true, option: false);
기본적으로 인자를 다 채워서 사용해야되지만, {}
로 감싸면 이름을 지정할 수 있습니다.
String test6(bool trig, [String str]){
if(trig){
return str;
}
return "";
}
test6(false);
[]
로 감싸면 인자를 옵션으로 사용할 수 있습니다.
void test7({String str = "hello,world!"}){
print(str);
}
test7();
void test8({List<int> list = const [1,2,3]}){
print(list);
}
test8();
{}
로 감싸서 기본 인자 값을 상수로 지정할 수 있습니다.
그래서 const 키워드가 필요할 때가 있습니다.
void printArr(int element) {
print(element);
}
var list = [1, 2, 3];
list.forEach(printArr);
함수를 인자로 넣을 수 있습니다.
var testList = ['1', '2', '3'];
list.forEach((item) {
print(testList[item-1]);
});
익명 함수로 만들어서 사용할 수도 있습니다.
Function adder(int n){
return (int i)=> n + i;
}
var tmp = adder(5);
print(tmp(5));
함수도 객체이기 때문에 함수를 반환하는 함수로 변수에 할당하여 사용할 수 있습니다.
foo() {}
print(foo() == null);
}
만약 함수의 반환값이 없다면 null로 출력됩니다.
Written on December 27, 2018