다트 프로그래밍-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