蘋果新的編程語言 Swift 語言進階(一)--綜述

         Swift 是蘋果開發和提供的供開發IOS 和OS X應用的一門新的語言。Swift語言基於C 和Objective-C語言,除了提供C 和Objective-C語言具有的所有語法功能外,爲了編程方便和高效,Swift在語法上作了大量的優化和改進。

         Swift採用安全編程模式,具有許多先進的強大的功能 ,如動態運行時、編譯動態進行類型檢查、Closures、下標功能、自動引用計數、選項類型、通用類型和類型編譯時推斷、類型的擴展和嵌套、協議類型、功能和類型的通用化、操作符的定製和添加。       

         Swift語言的設計思想是:語言和編譯器承擔不同的職責,語言本身承擔程序語義的呈現,爲程序編寫服務,爲提高編程效率進行了最大程度的優化;而編譯器承擔語言的理解和編譯職責,對程序的執行效率和性能進行最大程度的優化。

         因此Swift語言在設計時在保持語義可理解的基礎上爲了提供編程效率在語法上做了最大程度的優化,使語言本身更加乾淨和簡潔,功能更加強大、更富有表現力,並不失靈活性,如實現了語言語法上的面向對象和過程化部分的有機統一、去除了c 語言的語法上的諸多限制等。

        Swift語言通過語言和編譯器兩方面的優化使 採用Swift 語言進行編程更加容易、編程效率更高,同時程序的 執行效率和安全又得到保證。       

     一、Swift語言的簡潔性、靈活性

        Swift語言爲了保持語言的簡潔在語法的各個方面(包括程序結構、關鍵字等)進行了優化,在不失理解性的基礎上去除了冗餘的語法,能夠交給編譯器的工作儘量交給編譯器處理。

        如 每個語言實現的第一個程序,打印一條"Hello, world”。

        Swift語言爲了實現上述功能只是下面的一條語句。

        println("Hello, world”)

         該語句在Swift語言中就是一個完整的程序 ,不需要輸入另外的分離的庫和頭文件,也沒有通常語言都有的main 函數聲明,就連語句最後的分號也省略了。

         Swift語言也沒有C語言通常的頭文件,所有的實現和聲明都在一個後綴爲.swift的文件中,這也是爲了提高編程效率的需要,不需要用戶維護兩個文件。對於其它代碼需要的某個類的接口可以自動獲得和使用。

        Swift語言對關鍵字的命名在不失準確性的基礎上也是儘量的簡化,如整數類型爲Int,而不是Integer,布爾類型是Bool而不是Boolean等。

         Swift語言對循環語句添加了for-in形式,使其更加容易地對數組、詞典、範圍、字符串和其它序列進行遍歷。

       爲了語言的乾淨,包圍條件和循環變量的圓括號也被省略了。

        如:

for (kind,numbersin interestingNumbers {

   for number in numbers {

        if number >largest {

           largest =number

        }

    }

}

        對於Switch控制結構也作了語法的簡化,爲了語法的簡潔和更少的的出錯,在每個對應Switch的case的執行代碼執行完後,程序自動退出switch語句,不再繼續執行下面的case 語句,因此不需要在每個case對應的執行代碼後添加一個冗餘的break語句。而其它語言如C語言需要在每個case 語句後面添加多餘的break語句,用戶也經常會忘記添加這個多餘的break語句,因此造成程序邏輯出錯。

           Swift語言雖然在語法上進行了去冗餘化工作,但在語法功能上卻沒有精簡,反而大大增強了功能,除了支持C語言和Objective-C語言的幾乎所有功能外,還添加和增強了許多功能,如下標功能、元組類型、選項類型、類型的擴展和嵌套、功能和類型的通用化、操作符的定製和添加等許多功能。

       另外Swift語言更加靈活,相對c 語言或其它語言具有更少的語法限制。如

       Swift語言的註釋像c 語言一樣支持以//開始的單行註釋,也支持/* */形式的多行註釋。但沒有了c 語言對多行註釋不能嵌套的限制,Swift 的多行註釋支持嵌套。如下所示 :

    

      /* this is the start of the first multiline comment

/* this is the second, nested multiline comment */

this is the end of the first multiline comment */

   Swift還支持使用println功能或print直接打印一個變量或常量的值,或者插入一個字符串類型中進行輸出。。


 var friendlyWelcome =“Hello!"

  println(friendlyWelcome)

  println("The current value of friendlyWelcome is\(friendlyWelcome))。


        總之,Swift語言在語法語句上雖然與C語言相似,但在語法的許多方面作了許多精簡和增強,可以說Swift語言是C語言的精簡化、Objective-C語言的功能增強化,並且具有腳本語言的表達化等特點,因此Swift語言是一門語法更自然,表達更豐富的語言。


 二、Swift語言的安全性和語義清晰性

     Swift是一門類型安全的語言,即在編譯階段必須進行類型檢查明確使用到的每個變量或常量的類型。類型安全的語言可以在開發編譯階段更好的發現和修改類型使用上的錯誤,可以開發一個更加安全可靠的程序。

  

     Swift在編譯代碼時進行類型檢查,但不意味着必須爲每一個聲明的常量或變量規定類型。

     Swift編譯器提供了類型推斷機制--編譯代碼時,通過簡單檢查你提供的表達式的值自動推斷表達式的類型。


     由於Swift使用類型推斷,Swift可以提供比其它語言更簡潔的類型聲明語法,雖然語法簡潔,但類型仍然能夠在編譯階段被明確確定。Swift的編譯器推斷類型功能在Swift語言要求的類型安全與語法的簡潔上做到了最好的統一。

     如當你使用一個初始值來聲明一個常量或變量時,Swift編譯器能夠自動根據變量或常量的初始值來推斷變量或常量的類型。

   let maximumNumberOfLoginAttempts =10

   var currentLoginAttempt =0

     對於上面的對maximumNumberOfLoginAttempts常量和currentLoginAttempt變量的聲明,Swift能夠推斷其爲Int類型。

    let pi = 3.14159

   上面語句Swift推斷你想創建一個Double類型的常量。Swift總是推斷一個浮點數的類型爲Double。

   如變量或常量在聲明時沒有提供初始值,使Swift編譯器不能推斷其類型,就需要明確的爲其指定類型。如下所示,聲明一個字符串類型的變量。

     var  welcomeMessage: String

    因此Swift還是一門語義更加安全、更加清晰的語言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章