자바스크립트와 유사하나 조금의 차이가 있다.
int myFunc(int a){
if( a == 1) return 1;
else return 2;
}
print(myFunc(3)); //2
화살표 함수도 사용가능하지만 statement가 아닌 expression만 된다.
int sum(int a,int b) => a+b; // if 같은 것을 쓸 수 없다.
optional parameter 에는 2가지가 있다.
named parameter와 positioned parameter
named 파라미터의 정의와 사용법은 다음과 같다.
sum({int a = 0, int b = 0}) => a+b; //a,b의 default는 0
sum(); //0
sum(a:1); //1
sum(a:1,b:2); //3
꼭 필요한 파라미터의 경우 @required 어노테이션을 사용한다.
sum({int a=0, @required int b) => a+b;
print(sum(b:2)) //2;
print(sum(a:3)) // 오류! b 정의 해야한다.
positional parameter
String say(String from, String msg,
[String device = 'carrier pigeon', String mood]) {
var result = '$from says $msg';
if (device != null) {
result = '$result with a $device';
}
if (mood != null) {
result = '$result (in a $mood mood)';
}
return result;
}
assert(say('Bob', 'Howdy') ==
'Bob says Howdy with a carrier pigeon');
익명함수의 사용법은 다음과 같다.
var myList = ['a','b','c'];
myList.forEach((String el){
print(el);
});