最近在学习IOS,我一直使用的是C#来开发,对Java 、C、C++也有必定的了解。最近入手了一台Air,想试着学习IOS开发。数组
若是你不是C#和Java阵营的,若是你对Swift没有兴趣,就不用往下看了,真的!函数
一开始个人目标很明确,那就是学习OC,应为此语言通过多年的普遍应用,网上源代码不少,并且遇到的问题在百度和Google里也能很容易的找到资料,因此我一开始是奔着OC去的,可是几天的视频看下来,发现这OC语法只能用奇葩二字来形容,也许是我用惯了C#和Java的语法,也许是我我的的问题,反正我很讨厌OC的语法规则。学习
接着我试着看了一下Swift语言,发现Swift与OC的语法差异很大,反而根C#、Java的语法很是类似,简直是太像了。这个不像是苹果的做风啊,呵呵。spa
我一边在学习Swift,一边写这个文章,我呢是想到什么写些什么,文章结构会乱点,不过应该不会对阅读有太大的影响。code
写文章的目的是想让从C#和Java阵营对IOS开发有兴趣的朋友能够看一下,相对于C#和Java来讲Swift有哪些不一样和类似之处,以便你们可以更好更快的学习Swift!视频
首先,咱们来看看Swift前景。对象
一、苹果公司将在2016年发布的IOS10和OS X系统中的系统应用,彻底用Swift语言开发blog
二、Swift语言参考C、JavaScript、Python、Java、C#(易用、高效、灵活)ip
三、Swift版本迭代在加快开发
四、15年年末开源
得出:OC终有一天会退出历史舞台,就像被抛弃的孩子,我想不少OC开发者应该已经意识到了。可是OC开发者彻底转去学习Swift会很不习它的语法,反而C#、Java的开发者能很快上手!!!!
废话讲完了,下面我来罗列一下Swift语法与C#的语法有哪些类似与不一样之处(Java和C#差很少,我以C#做为参考),我会不按期更新这个文章,会写清楚时间节点。
----------------------------------------------2015-7-11----------------------------------------------
语句结束符号(;)
Swift语法中语句末尾能够省略(;)号,可是你加上此(;)也不会出错,我的习惯问题,仍是写上吧,我有强迫症。
//Swift中能够这样,末尾不加分号照样不报错,与JavaScript像不像? var i = 0 var n = 0; //C#中的状况,第一行会报错,告诉你少了分号 int i = 0 int n = 1;
变量的定义
Swift中参数类型根据值自动识别,若是须要手动定义变量类型(未赋值初始值)的状况下格式为: 变量名 : 类型
//-------Swift中的状况(说明:var 变量、let 常量) //自动识别的状况 var i = 1 //自动识别i为整型Int var k = 3.1415 //自动识别k为Double var m = "Hello World!" //自动识别m为String //手动申明类型的状况 var p : String //申明p为字符串(记得后面要初始化) var q : Int = 1 //q为整型 //-------C#中的状况 string p; int q = 1; //也就是多了个冒号,而后变量名和类型位置换了一下
Swift中的元组,这个是好东西
元组是什么,它能干什么,带来什么方便(也许我把元组放这里讲不合适,可是既然我想到了,就放这吧)
一、元组的出现可让我在方法结束时一次返回多个变量,而不用去定义一个结构体或New一个对象进行返回
二、元组能够做为单独的结构定义
接下来让咱们来看一下如何定义元组
//-----Swift中元组定义 var a = ("你好乔布斯",2015,true,3.1415926) //a值的结构应该是这样的(String,Int,Bool,Double) //那么咱们如何来解开它呢?两种方法 //第一种"a.下标",下标就是括号中值的顺序从0开始,PASS OC开发中这个叫点语法,我笑了,OC真是个大杂烩啊
var a1 = a.0 //a1自动识别为String 且值为"你好乔布斯"
var a2 = a.1 //a2自动识别Int 2015
//第二种方法
var (k1,k2,k3,k4) = a //那么k1 = a0 , k2 = a1 看的懂了吧
//等下面讲到函数(方法)的时候再来说元组
Swift中的逻辑语句
//Swift中能够这样写if else语句(注:>=、<=、<、>、!=、||、&&一样也存在于Swift中) if 1==1 { 语句块1 } else { 语句块2 } //C#和Java开发者是否是感受少了什么?没错,括号() //那么咱们加上括号对不对呢?没问题,照样对 if(1==1) { 语句快 }
For循环语句,和C#跟没差异
//---------Swift中的For语句(后面还会讲for in) //没有圆括号 for var i = 0;i<1000;i++ { println(i); } //有圆括号 for(var k=0;k<1000;k++) { println(k) }
For in
//-----Swift 中的遍历 var arr2 = []; //定义空数组,在这里说明一下 var arr = [1,2,3,4,5,6,7,8,9,0]; //数组定义,类型是自动识别 ,Int数组 for m in arr //变量m每次循环自动识别类型,因此这里不须要var了 { println(m); //打印 } //下面这个是和for循环同样的--> for var k = 0;k<1000;k++ for m in 0...1000 { println(m) } //-----C#中的 foreach 我就不在这里举例了
强类型转换
//-----Swift中 var age = Int("21"); //-----C#中
int age = int.parse("21");
//或者
int age = (int)"21";
三目运算符
//Swift中三目运算符和C#一致 var a = 1==1 ? 2 : 3 ; //结果a的值为2
今天就先写到这里吧,有点晚了~~下次再补充
1