iOS开发:Objective-C优雅的语法
对初学者来说,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:',而不是'doIt'
4、参数用空格隔开
5、参数类型写在括号中
6、参数分内部参数和外部参数,如电影名称,内部参数是:value,外部参数是:movieName
7、函数的一个参数没有外部参数的名称,有内部参数名。如:actorName。
调用:
从上面代码可以看出除了第一个参数,其余的参数都可以加上外部参数名称用于区别。
从上面可以看出Objective-C和C#区别很大,实在会令.net程序员费解。Objective-C函数设计的优雅之处在于即有内部参数名又有外部参数名,可以不用在再内部定义变量来存放函数的参数。
总结:本文是对Objective-C函数学习的一个简单总结。
iOS开发:Objective-C优雅的语法相关推荐
- IOS开发语言OC的基本语法以及结构
Objective-C语法之Objective-C语言和IOS系统(简介,语法,系统结构) 简介 Objective-C,是扩充C的面向对象编程语言.它主要使用于Mac OS Objective-C, ...
- 从零开始的iOS开发:00 | Swift基础语法(上)
目录 一.开发环境 二.关于Swift (一)Swift简介 (二)Swift特性 (三)结语 三.Swift基础语法 (一)编程准备 (二)Hello,world! (三)简单值 1.变量与常量 2 ...
- iOS资源帖-优秀博客、iOS开发技术文、学习网站
原链接:https://www.jianshu.com/p/619c61d9c8fb 一些博客 王巍 Objc中国发起人.Line工程师 ibireme YYKit作者 bang JSPatch作者 ...
- 【iOS 开发】Objective-C 运算符
博客地址 : http://blog.csdn.net/shulianghan/article/details/41624613 参考文章 : 1.[iOS 开发]Object-C 运算符 2.[iO ...
- 1.20 代码语法颜色样式的设置 [原创iOS开发-Xcode教程]
原文:http://coolketang.com/staticCoding/5a990cf47565717957664fbe.html 1. 本节课将为您演示,如何更改代码的语法高亮样式.首先双击打开 ...
- iOS开发-面试总结(九)
iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. ...
- iOS开发的学习笔记
引言 之前做过半年的iOS开发,从完全不懂的移动开发的菜鸟,到完成前端UI开发的菜鸟,做的一些笔记,希望对大家有用,也希望这些总结的东西对以后会有作用. 开发环境 iOS的系统框架分为四个层次: 核心 ...
- IOS开发人员必看的精品资料100
iPhone.iPad产品风靡全球,巨大的用户群刺激着iOS软件开发需求,然而国内人才缺口很大,正处于供不应求的状态,ios开发前景大好.我们整理了51CTO下载中心100份热门的ios开发资料,做了 ...
- iOS 开发值得拥有的75 个工具
ios开发这门技术更新的速度非常快,当然它的一些工具啊使用技巧啊也是非常的多,不知道这些相关的内容作为ios开发者的人都已经掌握了吗?下面是小编跟大家一起分享的ios开发的一些工具. 灵感 p ...
最新文章
- ES6新特性(函数默认参数,箭头函数)
- 全连接where 取最新日期_SQL学习笔记(4)——集合、连接与窗口函数
- python把一堆图片分成n份,用Python一键生成炫酷九宫格图片,火了朋友圈
- anaconda使用python写游戏,python娱乐时间:Anaconda方式搭建python开发环境
- java abstractset 继_java集合框架-AbstractSet
- Python -bs4介绍
- 服务器biosraid管理
- vcsa上RVC查看vsan状态的命令
- shell脚本编写保存
- php中的echo单引号_PHP 邮件漏洞小结
- 信号与系统 --- 傅里叶变换时/频对照表(个人学习笔记)
- php mysql 嵌套查询_MYSQL数据库MySQL嵌套查询实例详解
- 注意!!!谷歌python技术已流出,经过腾讯T6大佬总结,现在分享给大家(有实例分享)
- 欧几里得算法证明,最小公倍数求法证明
- mac上开发abp-zero(三) —— 代码调试篇
- Do You Kown Asp.Net Core -- Asp.Net Core 2.0 未来web开发新趋势 Razor Page
- Linux之文件/目录搜索
- 数字平原cg场景制作流程
- mysql授权连接_MySQL 连接认证授权步骤
- c 语言 如何设置串口波特率,STC89C52RC串口波特率程序
热门文章
- Linux常用命令——压缩与解压缩命令
- python中的引用、浅拷贝和深拷贝
- HDU_oj_2021 发工资喽
- PHP中对数据库操作的封装
- 2013-10-31 《October 31st, 2013》
- Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)
- 文本深度表示模型Word2Vec
- 屏蔽控制台应用程序的窗口#pragma comment(linker, /subsystem:windows /ENTRY:mainCRTStartup)...
- C# 线程安全与 lock锁
- [转] Java多线程发展简史