对初学者来说,Objective-C存在了很多令人费解的写法,实际上他们是非常优雅的。

程序员写的最多的就是函数以及调用自己写的或者别人写的函数。本文就从函数的角度来看下Objective-C的优雅之处。

C#和Objective-C同属于c系列语言。让我们先看下C#的函数定义和调用,做个对比。

C#函数的定义:

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

函数的调用:

  1. Class1 objMovie = new Class1();
  2. objMovie.doIt("莱昂纳多·迪卡普里奥", "盗梦空间", 120);

在让.net程序员看下Objective-C的定义:

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

如果你第一次看Objective-C,肯定会琢磨不透上面的代码,怀疑是不是写错了。

对于上面这个函数的定义:

1、'-'表示这个函数是实例函数(类似非静态函数),'+'表示这个函数是类函数(类似静态函数)

2、(void)表示这个函数没有返回值。

3、函数名是'doIt:',而不是'doIt'

4、参数用空格隔开

5、参数类型写在括号中

6、参数分内部参数和外部参数,如电影名称,内部参数是:value,外部参数是:movieName

7、函数的一个参数没有外部参数的名称,有内部参数名。如:actorName。

调用:

从上面代码可以看出除了第一个参数,其余的参数都可以加上外部参数名称用于区别。

从上面可以看出Objective-C和C#区别很大,实在会令.net程序员费解。Objective-C函数设计的优雅之处在于即有内部参数名又有外部参数名,可以不用在再内部定义变量来存放函数的参数。

总结:本文是对Objective-C函数学习的一个简单总结。

iOS开发:Objective-C优雅的语法相关推荐

  1. IOS开发语言OC的基本语法以及结构

    Objective-C语法之Objective-C语言和IOS系统(简介,语法,系统结构) 简介 Objective-C,是扩充C的面向对象编程语言.它主要使用于Mac OS Objective-C, ...

  2. 从零开始的iOS开发:00 | Swift基础语法(上)

    目录 一.开发环境 二.关于Swift (一)Swift简介 (二)Swift特性 (三)结语 三.Swift基础语法 (一)编程准备 (二)Hello,world! (三)简单值 1.变量与常量 2 ...

  3. iOS资源帖-优秀博客、iOS开发技术文、学习网站

    原链接:https://www.jianshu.com/p/619c61d9c8fb 一些博客 王巍 Objc中国发起人.Line工程师 ibireme YYKit作者 bang JSPatch作者 ...

  4. 【iOS 开发】Objective-C 运算符

    博客地址 : http://blog.csdn.net/shulianghan/article/details/41624613 参考文章 : 1.[iOS 开发]Object-C 运算符 2.[iO ...

  5. 1.20 代码语法颜色样式的设置 [原创iOS开发-Xcode教程]

    原文:http://coolketang.com/staticCoding/5a990cf47565717957664fbe.html 1. 本节课将为您演示,如何更改代码的语法高亮样式.首先双击打开 ...

  6. iOS开发-面试总结(九)

    iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. ...

  7. iOS开发的学习笔记

    引言 之前做过半年的iOS开发,从完全不懂的移动开发的菜鸟,到完成前端UI开发的菜鸟,做的一些笔记,希望对大家有用,也希望这些总结的东西对以后会有作用. 开发环境 iOS的系统框架分为四个层次: 核心 ...

  8. IOS开发人员必看的精品资料100

    iPhone.iPad产品风靡全球,巨大的用户群刺激着iOS软件开发需求,然而国内人才缺口很大,正处于供不应求的状态,ios开发前景大好.我们整理了51CTO下载中心100份热门的ios开发资料,做了 ...

  9. iOS 开发值得拥有的75 个工具

    ios开发这门技术更新的速度非常快,当然它的一些工具啊使用技巧啊也是非常的多,不知道这些相关的内容作为ios开发者的人都已经掌握了吗?下面是小编跟大家一起分享的ios开发的一些工具.   灵感   p ...

最新文章

  1. ES6新特性(函数默认参数,箭头函数)
  2. 全连接where 取最新日期_SQL学习笔记(4)——集合、连接与窗口函数
  3. python把一堆图片分成n份,用Python一键生成炫酷九宫格图片,火了朋友圈
  4. anaconda使用python写游戏,python娱乐时间:Anaconda方式搭建python开发环境
  5. java abstractset 继_java集合框架-AbstractSet
  6. Python -bs4介绍
  7. 服务器biosraid管理
  8. vcsa上RVC查看vsan状态的命令
  9. shell脚本编写保存
  10. php中的echo单引号_PHP 邮件漏洞小结
  11. 信号与系统 --- 傅里叶变换时/频对照表(个人学习笔记)
  12. php mysql 嵌套查询_MYSQL数据库MySQL嵌套查询实例详解
  13. 注意!!!谷歌python技术已流出,经过腾讯T6大佬总结,现在分享给大家(有实例分享)
  14. 欧几里得算法证明,最小公倍数求法证明
  15. mac上开发abp-zero(三) —— 代码调试篇
  16. Do You Kown Asp.Net Core -- Asp.Net Core 2.0 未来web开发新趋势 Razor Page
  17. Linux之文件/目录搜索
  18. 数字平原cg场景制作流程
  19. mysql授权连接_MySQL 连接认证授权步骤
  20. c 语言 如何设置串口波特率,STC89C52RC串口波特率程序

热门文章

  1. Linux常用命令——压缩与解压缩命令
  2. python中的引用、浅拷贝和深拷贝
  3. HDU_oj_2021 发工资喽
  4. PHP中对数据库操作的封装
  5. 2013-10-31 《October 31st, 2013》
  6. Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)
  7. 文本深度表示模型Word2Vec
  8. 屏蔽控制台应用程序的窗口#pragma comment(linker, /subsystem:windows /ENTRY:mainCRTStartup)...
  9. C# 线程安全与 lock锁
  10. [转] Java多线程发展简史