ObjectC基礎之函數調用

函數即方法

在OC對象中,函數似對象的行爲,實例對象用 (-) 返回,類返回 用(+)

(一)方法的定義:

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

這裏有一個比較特殊的地方是:第一個參數是方法名跟參數結合在一塊的,舉個max方法的例子,如下:

/* 返回兩個參數的最大值 */
- (int) max:(int) num1 secondNumber:(int) num2 {

   /* 局部變量聲明 */
   int result;

   if (num1 > num2) {
      result = num1;
   } else {
      result = num2;
   }

   return result; 
}

上圖:max是方法名稱,其中num1,num2是形式參數,如果把它改成Java代碼,如下:

/* 返回兩個參數的最大值 */
int max(int num1,int num2) {

   /* 局部變量聲明 */
   int result;

   if (num1 > num2) {
      result = num1;
   } else {
      result = num2;
   }

   return result; 
}

方法的調用:

#import <Foundation/Foundation.h>

@interface SampleClass:NSObject
/* 方法聲明 */
- (int)max:(int)num1 andNum2:(int)num2;
@end

@implementation SampleClass

/* 返回兩個數的最大值 */
- (int)max:(int)num1 andNum2:(int)num2 {

   /* 聲明局部變量 */
   int result;

   if (num1 > num2) {
      result = num1;
   } else {
      result = num2;
   }

   return result; 
}

@end

int main () {

   /* 定義局部變量 */
   int a = 19;
   int b = 20;
   int ret;
   
	/* 初始化並分配內存*/
   SampleClass *sampleClass = [[SampleClass alloc]init];

   /* 調用方法來獲取最大值 */
   ret = [sampleClass max:a andNum2:b];

   NSLog(@"Max value is : %d\n", ret );
   return 0;
}

以上就是OC函數的寫法與調用。
更多課程請訪問個人主頁:

Github搭建個人博客(2019最新版,親測)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章