다트 프로그래밍-Typedef

typedef, 또는 함수 유형 별칭은 메모리 내에서 실행 코드에 대한 포인터를 정의하는 데 도움이됩니다. 간단히 말해서typedef 함수를 참조하는 포인터로 사용할 수 있습니다.

다음은 구현 단계입니다. typedefs 다트 프로그램에서.

Step 1: Defining a typedef

typedef특정 함수와 일치시킬 함수 서명을 지정하는 데 사용할 수 있습니다. 함수 시그니처는 함수의 매개 변수 (유형 포함)로 정의됩니다. 반환 유형은 함수 서명의 일부가 아닙니다. 구문은 다음과 같습니다.

typedef function_name(parameters)

Step 2: Assigning a Function to a typedef Variable

변수 typedef 동일한 서명을 가진 모든 함수를 가리킬 수 있습니다. typedef. 다음 서명을 사용하여 기능을 할당 할 수 있습니다.typedef 변하기 쉬운.

type_def  var_name = function_name

Step 3: Invoking a Function

그만큼 typedef변수를 사용하여 함수를 호출 할 수 있습니다. 다음은 함수를 호출하는 방법입니다.

var_name(parameters)

이제 더 많은 것을 이해하기 위해 예를 들어 보겠습니다. typedef 다트에서.

처음에는 typedef. 여기서 우리는 함수 시그니처를 정의합니다. 이 함수는 유형의 두 입력 매개 변수를 사용합니다.integer. 반환 유형은 함수 서명의 일부가 아닙니다.

typedef ManyOperation(int firstNo , int secondNo); //function signature

다음으로 함수를 정의하겠습니다. 동일한 기능 시그니처로 일부 기능을 정의하십시오.ManyOperation typedef.

Add(int firstNo,int second){ 
   print("Add result is ${firstNo+second}"); 
}  
Subtract(int firstNo,int second){ 
   print("Subtract result is ${firstNo-second}"); 
}  
Divide(int firstNo,int second){ 
   print("Add result is ${firstNo/second}"); 
}

마지막으로 다음을 통해 함수를 호출합니다. typedef. ManyOperations 유형의 변수를 선언하십시오. 선언 된 변수에 함수 이름을 지정하십시오.

ManyOperation oper ;  

//can point to any method of same signature 
oper = Add; 
oper(10,20); 
oper = Subtract; 
oper(30,20); 
oper = Divide; 
oper(50,5);

그만큼 oper변수는 두 개의 정수 매개 변수를 사용하는 모든 메소드를 가리킬 수 있습니다. 그만큼Add함수의 참조가 변수에 할당됩니다. Typedef는 런타임에 함수 참조를 전환 할 수 있습니다.

이제 모든 부품을 모아 전체 프로그램을 살펴 보겠습니다.

typedef ManyOperation(int firstNo , int secondNo); 
//function signature  

Add(int firstNo,int second){ 
   print("Add result is ${firstNo+second}"); 
} 
Subtract(int firstNo,int second){ 
   print("Subtract result is ${firstNo-second}"); 
}
Divide(int firstNo,int second){ 
   print("Divide result is ${firstNo/second}"); 
}  
Calculator(int a, int b, ManyOperation oper){ 
   print("Inside calculator"); 
   oper(a,b); 
}  
void main(){ 
   ManyOperation oper = Add; 
   oper(10,20); 
   oper = Subtract; 
   oper(30,20); 
   oper = Divide; 
   oper(50,5); 
}

프로그램은 다음을 생성해야합니다. output

Add result is 30 
Subtract result is 10 
Divide result is 10.0

Note − 위 코드는 다음과 같은 경우 오류가 발생합니다. typedef 변수는 다른 함수 시그니처를 가진 함수를 가리 키려고합니다.

Typedefs매개 변수로 함수에 전달할 수도 있습니다. 다음 예를 고려하십시오-

typedef ManyOperation(int firstNo , int secondNo);   //function signature 
Add(int firstNo,int second){ 
   print("Add result is ${firstNo+second}"); 
}  
Subtract(int firstNo,int second){
   print("Subtract result is ${firstNo-second}"); 
}  
Divide(int firstNo,int second){ 
   print("Divide result is ${firstNo/second}"); 
}  
Calculator(int a,int b ,ManyOperation oper){ 
   print("Inside calculator"); 
   oper(a,b); 
}  
main(){ 
   Calculator(5,5,Add); 
   Calculator(5,5,Subtract); 
   Calculator(5,5,Divide); 
}

다음을 생성합니다. output

Inside calculator 
Add result is 10 
Inside calculator 
Subtract result is 0 
Inside calculator 
Divide result is 1.0