從C#到Swift,Swift學習筆記

來源:互聯網
上載者:User

標籤:

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

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.