標籤:
最近在學習IOS,我一直使用的是C#來開發,對Java 、C、C++也有一定的瞭解。最近入手了一台Air,想試著學習IOS開發。
如果你不是C#和Java陣營的,如果你對Swift沒有興趣,就不用往下看了,真的!
一開始我的目標很明確,那就是學習OC,應為此語言經過多年的廣泛應用,網上原始碼很多,而且遇到的問題在百度和Google裡也能很容易的找到資料,所以我一開始是奔著OC去的,但是幾天的視頻看下來,發現這OC文法只能用奇葩二字來形容,也許是我用慣了C#和Java的文法,也許是我個人的問題,反正我很討厭OC的文法規則。
接著我試著看了一下Swift語言,發現Swift與OC的文法差別很大,反而根C#、Java的文法非常相似,簡直是太像了。這個不像是蘋果的作風啊,呵呵。
我一邊在學習Swift,一邊寫這個文章,我呢是想到什麼寫些什麼,文章結構會亂點,不過應該不會對閱讀有太大的影響。
寫文章的目的是想讓從C#和Java陣營對IOS開發有興趣的朋友可以看一下,相對於C#和Java來說Swift有哪些不同和相似之處,以便大家能夠更好更快的學習Swift!
首先,我們來看看Swift前景。
1、蘋果公司將在2016年發布的IOS10和OS X系統中的系統應用,完全用Swift語言開發
2、Swift語言參考C、JavaScript、Python、Java、C#(易用、高效、靈活)
3、Swift版本迭代在加快
4、15年年底開源
得出:OC終有一天會退出曆史舞台,就像被拋棄的孩子,我想很多OC開發人員應該已經意識到了。但是OC開發人員完全轉去學習Swift會很不習它的文法,反而C#、Java的開發人員能很快上手!!!!
廢話講完了,下面我來羅列一下Swift文法與C#的文法有哪些相似與不同之處(Java和C#差不多,我以C#作為參考),我會不定期更新這個文章,會寫清楚時間節點。
----------------------------------------------2015-7-11----------------------------------------------
語句結束符號(;)
Swift文法中語句末尾可以省略(;)號,但是你加上此(;)也不會出錯,個人習慣問題,還是寫上吧,我有強迫症。
//Swift中可以這樣,末尾不加分號照樣不報錯,與JavaScript像不像?var i = 0var n = 0;//C#中的情況,第一行會報錯,告訴你少了分號int i = 0int n = 1;
變數的定義
Swift中參數類型根據值自動識別,如果需要手動定義變數類型(未賦值初始值)的情況下格式為: 變數名 : 類型
//-------Swift中的情況(說明:var 變數、let 常量)//自動識別的情況var i = 1 //自動識別i為整型Intvar k = 3.1415 //自動識別k為Doublevar m = "Hello World!" //自動識別m為String//手動申明類型的情況var p : String //申明p為字串(記得後面要初始化)var q : Int = 1 //q為整型//-------C#中的情況string p;int q = 1;//也就是多了個冒號,然後變數名和類型位置換了一下
Swift中的元組,這個是好東西
元組是什麼,它能幹什麼,帶來什麼方便(也許我把元組放這裡講不合適,但是既然我想到了,就放這吧)
1、元組的出現可以讓我在方法結束時一次返回多個變數,而不用去定義一個結構體或New一個對象進行返回
2、元組可以作為單獨的結構定義
接下來讓我們來看一下如何定義元組
//-----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語句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";
今天就先寫到這裡吧,有點晚了~~下次再補充
1
從C#到Swift,Swift學習筆記