objective-c優雅的文法

來源:互聯網
上載者:User

   對初學者來說,objective-c存在了很多令人費解的寫法,實際上他們是非常優雅的。

    程式員寫的最多的就是函數以及調用自己寫的或者別人寫的函數。本文就從函數的角度來看下objective-c的優雅之處。
    C#和objective-c同屬於c系列語言。讓我們先看下C#的函數定義和調用,做個對比。
    C#函數的定義:

public void doIt(string actorName, string movieName, int timesSeen)
{
Console.Write("{0} is my favorite actor in the movie {1}, I saw it {2} times.", actorName, movieName, timesSeen);
}

    函數的調用:   

Class1 objMovie = new Class1();
objMovie.doIt("萊昂納多·迪卡普裡奧", "盜夢空間", 120);

 在讓.net程式員看下objective-c的定義:

- (void) doIt:(NSString *) actorName movieName: (NSString*) value timesSeen: (int)times {
NSLog(@"%@ is my favorite actor in the movie %@, I saw it %i times.",actorName, value, times);
}

    如果你第一次看objective-c,肯定會琢磨不透上面的代碼,懷疑是不是寫錯了。  

    對於上面這個函數的定義:
1、'-'表示這個函數是執行個體函數(類似非靜態函數),'+'表示這個函數是類函數(類似靜態函數)
2、(void)表示這個函數沒有傳回值。
3、函數名是'doIt: movieName: timesSeen:',而不是'doIt'
4、參數用空格隔開
5、參數類型寫在括弧中
6、參數分內部參數和外部參數,如電影名稱,內部參數是:value,外部參數是:movieName

7、函數的一個參數沒有外部參數的名稱,有內部參數名。如:actorName。

調用:

     從上面代碼可以看出除了第一個參數,其餘的參數都可以加上外部參數名稱用於區別。

    從上面可以看出objective-c和C#區別很大,實在會令.net程式員費解。objective-c函數設計的優雅之處在於即有內部參數名又有外部參數名,可以不用在再內部定義變數來存放函數的參數。

總結:本文是對objective-c函數學習的一個簡單總結。

相關文章
阿里云产品大规模降价
  • 最高幅度達59%,平均降幅23%
  • 核心產品降價
  • 多地區降價
undefined. /
透過 Discord 與我們聯繫
  • 安全、匿名的群聊,不受干擾
  • 隨時了解活動、活動、新產品等訊息
  • 支持您的所有問題
undefined. /
免費試用
  • 開啟從ECS到大數據的免費試用之旅
  • 只需三步 輕鬆上雲
  • 免費試用ECS t5 1C1G
undefined. /

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.