Funkcje celu-C

Funkcja to grupa instrukcji, które razem wykonują zadanie. Każdy program Objective-C ma jedną funkcję w C.main(), a wszystkie najbardziej trywialne programy mogą definiować dodatkowe funkcje.

Możesz podzielić swój kod na osobne funkcje. To, w jaki sposób podzielisz swój kod na różne funkcje, zależy od Ciebie, ale logicznie jest to zazwyczaj taki podział, że każda funkcja wykonuje określone zadanie.

Funkcja declarationinformuje kompilator o nazwie funkcji, typie zwracanym i parametrach. Funkcjadefinition dostarcza rzeczywistą treść funkcji.

Zasadniczo w Objective-C nazywamy funkcję jako metodę.

Struktura podstawowa Objective-C zapewnia wiele wbudowanych metod, które program może wywołać. Na przykład metodaappendString() aby dołączyć ciąg do innego ciągu.

Metoda jest znana pod różnymi nazwami, takimi jak funkcja, podprogram lub procedura itp.

Definiowanie metody

Ogólna forma definicji metody w języku programowania Objective-C jest następująca -

- (return_type) method_name:( argumentType1 )argumentName1 
joiningArgument2:( argumentType2 )argumentName2 ... 
joiningArgumentn:( argumentTypen )argumentNamen {
   body of the function
}

Definicja metody w języku programowania Objective-C składa się z nagłówka metody i treści metody . Oto wszystkie części metody -

  • Return Type- Metoda może zwrócić wartość. Plikreturn_typejest typem danych wartości zwracanej przez funkcję. Niektóre metody wykonują żądane operacje bez zwracania wartości. W tym przypadku return_type jest słowem kluczowymvoid.

  • Method Name- To jest rzeczywista nazwa metody. Nazwa metody i lista parametrów razem stanowią sygnaturę metody.

  • Arguments- Argument jest jak symbol zastępczy. Kiedy funkcja jest wywoływana, przekazujesz wartość do argumentu. Ta wartość jest określana jako rzeczywisty parametr lub argument. Lista parametrów odnosi się do typu, kolejności i liczby argumentów metody. Argumenty są opcjonalne; to znaczy, metoda może nie zawierać żadnego argumentu.

  • Joining Argument - Łączący argument ma na celu ułatwienie czytania i wyjaśnienie podczas wywoływania.

  • Method Body - Treść metody zawiera zbiór instrukcji definiujących działanie metody.

Przykład

Poniżej znajduje się kod źródłowy metody o nazwie max(). Ta metoda przyjmuje dwa parametry num1 i num2 i zwraca maksimum między dwoma -

/* function returning the max between two numbers */
- (int) max:(int) num1 secondNumber:(int) num2 {
   
   /* local variable declaration */
   int result;
 
   if (num1 > num2) {
      result = num1;
   } else {
      result = num2;
   }
 
   return result; 
}

Deklaracje metod

Metoda declarationinformuje kompilator o nazwie funkcji i sposobie wywołania metody. Rzeczywistą treść funkcji można zdefiniować oddzielnie.

Deklaracja metody składa się z następujących części -

- (return_type) function_name:( argumentType1 )argumentName1 
joiningArgument2:( argumentType2 )argumentName2 ... 
joiningArgumentn:( argumentTypen )argumentNamen;

Dla wyżej zdefiniowanej funkcji max (), poniżej znajduje się deklaracja metody -

-(int) max:(int)num1 andNum2:(int)num2;

Deklaracja metody jest wymagana, gdy definiujesz metodę w jednym pliku źródłowym i wywołujesz tę metodę w innym pliku. W takim przypadku należy zadeklarować funkcję na początku pliku wywołującego funkcję.

Wywołanie metody

Tworząc metodę Objective-C, podajesz definicję tego, co funkcja ma robić. Aby użyć metody, będziesz musiał wywołać tę funkcję, aby wykonać określone zadanie.

Gdy program wywołuje funkcję, sterowanie programem jest przekazywane do wywoływanej metody. Wywołana metoda wykonuje zdefiniowane zadanie, a po wykonaniu instrukcji return lub po osiągnięciu zamykającego nawiasu zamykającego funkcję zwraca sterowanie programem z powrotem do programu głównego.

Aby wywołać metodę, wystarczy przekazać wymagane parametry wraz z nazwą metody, a jeśli metoda zwraca wartość, można ją zapisać. Na przykład -

#import <Foundation/Foundation.h>

@interface SampleClass:NSObject
/* method declaration */
- (int)max:(int)num1 andNum2:(int)num2;
@end

@implementation SampleClass

/* method returning the max between two numbers */
- (int)max:(int)num1 andNum2:(int)num2 {

   /* local variable declaration */
   int result;
 
   if (num1 > num2) {
      result = num1;
   } else {
      result = num2;
   }
 
   return result; 
}

@end

int main () {
   
   /* local variable definition */
   int a = 100;
   int b = 200;
   int ret;
   
   SampleClass *sampleClass = [[SampleClass alloc]init];

   /* calling a method to get max value */
   ret = [sampleClass max:a andNum2:b];
 
   NSLog(@"Max value is : %d\n", ret );
   return 0;
}

Zachowałem funkcję max () wraz z funkcją main () i przestrzegałem kodu źródłowego. Podczas uruchamiania końcowego pliku wykonywalnego dałoby to następujący wynik -

2013-09-07 22:28:45.912 demo[26080] Max value is : 200

Argumenty funkcji

Jeśli funkcja ma używać argumentów, musi zadeklarować zmienne, które akceptują wartości argumentów. Te zmienne nazywane sąformal parameters funkcji.

Parametry formalne zachowują się jak inne zmienne lokalne wewnątrz funkcji i są tworzone po wejściu do funkcji i niszczone po zakończeniu.

Podczas wywoływania funkcji istnieją dwa sposoby przekazywania argumentów do funkcji -

Sr.No. Typ i opis połączenia
1 Zadzwoń według wartości

Ta metoda kopiuje rzeczywistą wartość argumentu do parametru formalnego funkcji. W tym przypadku zmiany wprowadzone w parametrze wewnątrz funkcji nie mają wpływu na argument.

2 Zadzwoń przez odniesienie

Ta metoda kopiuje adres argumentu do parametru formalnego. Wewnątrz funkcji adres służy do uzyskania dostępu do faktycznego argumentu użytego w wywołaniu. Oznacza to, że zmiany wprowadzone w parametrze wpływają na argument.

Domyślnie Objective-C używa call by valueprzekazywać argumenty. Ogólnie oznacza to, że kod wewnątrz funkcji nie może zmieniać argumentów użytych do wywołania funkcji, a powyższy przykład podczas wywoływania funkcji max () używał tej samej metody.