objective-c的语法—函数名
来源:互联网 发布:功放机功放电路板淘宝 编辑:程序博客网 时间:2024/06/11 11:25
对初学者来说,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);
}
{
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);
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);
}
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://zhuqil.cnblogs.com 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
0 0
- objective-c的语法—函数名
- Objective-C学习总结#1——函数与变量的语法特性
- Objective-C的语法格式
- Objective C 不一样的语法
- Objective-C的blocks语法
- Objective-C的基本语法
- objective-c优雅的语法
- objective-c优雅的语法
- Objective-C Block语法递归函数实现
- 浅谈Objective-C基本语法(函数)
- Objective-C Block语法递归函数实现
- objective-c的语法详解(objective-c的历史)
- Objective-C中根据函数名调用函数
- Objective-C中根据函数名调用函数
- Objective-C开发——最简单的Objective-C程序与基础语法解析
- Objective-C基础---Objective-C的特有语法
- Objective-c的第一个问题:中缀符,到底什么是函数名,什么是参数?
- Objective-C 的语法与 Cocoa 框架
- 阻塞 与 非阻塞 的理解?
- C++学习(一)
- CSS3的REM设置字体大小
- ajax配合json在Servlet中的实现方法
- 通过反射动态接入外部类
- objective-c的语法—函数名
- 行人检测
- java中String和int的转换
- flex文件引用actionscript文件
- iOS 通过(lame)将录制音频转换成Mp3
- son实现前后台的相互传值详解
- OpenCV HOGDescriptor 参数图解
- GIC使用注意事项
- 关于Xshao的通关攻略