Dart #3 Functions

Soymilk·2024년 1월 31일
post-thumbnail

#3.0 Defining a Function

function 선언하는 방법

ReturnType FunctionName(Parameters){
	statements...
}

람다함수 작성법(getter일때 쓸모 있을듯!)

ReturnType functionName(Parameters) => returnvalue;

#3.1 Named Parameters

parameter를 이름을 적어서 명시적으로 전달하고 싶을 때,

void main(){
  
  print(func(
    name: "jungwoo", 
    age: 15, 
    isMale: true,));

}

String func({String name, int age, bool isMale}){
  return "$name $age $isMale";
}

위처럼 파라미터 목록에 중괄호 {} 를 씌워주면 된다!
(이를 Named Parameters라고 한다.) (반대는 Positional Parameters)

또한 null이 전달되는 것을 방지하기 위해

  • default value를 설정하거나,
    String func({String name = 'anonymous', int age = 99, bool isMale = true}){
      return "$name $age $isMale";
    }
  • required modifier를 사용할 수 있다!
    String func({
    	required String name,
    	required int age,
    	required bool isMale,
    	}){
      
    	return "$name $age $isMale";
    }

#3.2 Recap

파라미터의 종류 두 가지

  • Positional Parameter
  • Optional Parameter

#3.3 Optional Parameter

parameter가 null일 수 있도록 하려면?

⇒ optional parameter을 사용한다.

void main() {
  print(func('jungwoo',10));
}

String func(
  String name,
  int age,
  [bool? isMale = true]
  ){
  return "$name $age $isMale";
}                                //여기서는 positional parameter에 optional parameter 두 개가 추가된 형태임!

#3.4 QQ Operator

?? operator

String retUpperCaseName(String? name) =>
  name?.toUpperCase() ?? 'Anonymous';

name?.toUpperCase()가 null이라면 오른쪽의 value를 리턴함!

??= operator

void main() {
  String? name;

  name ??= 'it was null';

  print(name);
}

name이 null이라면 ‘it was null’ 을 할당함!

#3.5 typedef

c언어의 typedef와 거의 동일함!

0개의 댓글