博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
objective-c优雅的语法
阅读量:5877 次
发布时间:2019-06-19

本文共 1207 字,大约阅读时间需要 4 分钟。

 对初学者来说,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函数学习的一个简单总结。

本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2011/03/15/1984642.html,如需转载请自行联系原作者
你可能感兴趣的文章
Eclipse的 window-->preferences里面没有Android选项
查看>>
《麦田里的守望者》--[美]杰罗姆·大卫·塞林格
查看>>
遇到的那些坑
查看>>
央行下属的上海资信网络金融征信系统(NFCS)签约机构数量突破800家
查看>>
[转] Lazy evaluation
查看>>
常用查找算法总结
查看>>
被神话的大数据——从大数据(big data)到深度数据(deep data)思维转变
查看>>
修改校准申请遇到的问题
查看>>
Linux 进程中 Stop, Park, Freeze【转】
查看>>
文件缓存
查看>>
远程协助
查看>>
Scrum实施日记 - 一切从零开始
查看>>
关于存储过程实例
查看>>
配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法...
查看>>
AIX 7.1 install python
查看>>
PHP盛宴——经常使用函数集锦
查看>>
重写 Ext.form.field 扩展功能
查看>>
Linux下的搜索查找命令的详解(locate)
查看>>
福利丨所有AI安全的讲座里,这可能是最实用的一场
查看>>
开发完第一版前端性能监控系统后的总结(无代码)
查看>>