【Smallfan的ios学习笔记 02】基础语法
本文来自:博客园CoderSmallfan。转载请注明出处:http://www.cnblogs.com/codersmallfan/p/3746837.html
学习ios的同学一般都是具备一定的编程语言基础,所以基础语法这块的东西并不需要像“谭xx 叫兽“那种一步一个脚印儿地学,一般也就看看异同点。objective-c这门语言是由c派生出来的,所以面向过程方面的东西是完全和c相同的,而新增的面向对象方面的知识点,多应与c++进行比较,这也是objective-c需要学习的基础语法唯一的地方(以下提及关于c的语法内容如果遗忘,请自行复习)。
首先基本数据类型分为int、float、double、char和id。前4种和c语言一样具有long、short、unsigned、signed限定词修饰,并支持八进制和十六进制的格式。int类型和c语言中一样也是设备相关量,由机器决定内存量,可占用32位或64位。需要注意一点的是,在NSLog字符串输出函数中,int类型的占位符更倾向于使用%i而不是%d(%li,%hi,%u)。最后一种基本数据类型id是objective-c特有的类型,可以看作是c语言中的void *类型,可存储任何类型的对象,从某种意义说,它是一般对象类型。
算术表达式及一元运算符与c语言大同小异,模运算符%只用于处理整数,类型转换也分为隐式转换与显式转换(使用括号加基本类型)。
循环结构(while、do while、for),跳转语句(break、continue),选择结构(if、else if、else、switch),条件运算符(c?e1:e2),位运算符(与或非、求反、移位),枚举类型(enum)与C语言相同。需要注意的是,右移位操作实际是算术右移(按符号位)还是逻辑右移(全为0)也与系统有关。
objective-c和c++语言一样,支持Boolean变量。
//将会输出"Yes" int isPrime = 10; if(isPrime) { NSLog(@"Yes"); } else { NSLog(@"No"); }
//将会输出“Yes” int isWrite = 0; if(!isWrite ) { NSLog(@"Yes"); } else { NSLog(@"No"); }
Objective-c中实际上还有内置一个BOOL类型的属性,其预定义的值为YES和NO。
关于Objective-c中的其他相关基础语法特性,在其他篇章将会陆续提到(例如静态变量,全局变量等),这里不做过多解释。