最近在學習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