當前位置:首頁 » 編程軟體 » swift編程

swift編程

發布時間: 2022-01-19 19:51:02

1. swift是不是最新的一種編程語言

翻完iBooks書店上的The Swift Programming Language, 也下載了Xcode 6的beta版本來試驗了一下。現在可以評價一下。如發現不對的地方,請在評論中指出,我斟酌後進行修正。
主要從技術的角度。而商業的角度,吸引開發者,共同維護蘋果生態圈的繁榮等之類就不說了。
我不敢說swift學了有沒有用,可不可以掙更多錢,但這門語言還是比較有意思的。swift骨子裡面還是objc,但打扮過,比原來的模樣漂亮。個人感覺,蘋果還真的想用它取代objc呢。
------------------
swift 跟 objc 共用同一套的運行時環境
swift 的類型,可以橋接到 objc 的類型,反之亦然。如 string 對應原來objc的NSString, closures對應objc的block,等等。objc 積累下來的大量庫,實現不用改寫,swift 就直接可以使用。(最多加個聲明文件)。看兩個API的聲明,對比一下
objc
void
dispatch_apply(size_t iterations, dispatch_queue_t queue,
void (^block)(size_t));

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;

swift
func dispatch_apply(iterations: UInt, queue: dispatch_queue_t!, block: ((UInt) -> Void)!)

func touchesBegan(touches: NSSet!, withEvent event: UIEvent!)

我懷疑,swift中的介面文件,是利用原來objc,c中的介面文件自動程序生成的。

同一個工程,可以同時使用swift, objc, c, c++ 四種編譯語言(額外嵌入的腳本語言另算)
原來的 iOS/Mac 工程,已經可以同時使用objc, c, C++三種語言。現在支持第四種。objc, c, c++三種語言的結合很容易, objc跟c本身就兼容,objc跟c++結合只要將文件名改成.mm。而swift跟其它語言的結合,需要另外的文件進行橋接,其實也挺方便的。
這里的橋接很容易,Apple自家的各種 C 庫移植過來了。比如Core Image/Audio,直接包含
import CoreAudio
import CoreImage

就可以使用了。
現在swift完全可以跟objc並存,原來的工程不建議重寫,也不用重寫。順其自然,慢慢讓它進化就是了。

swift 寫法看起來像腳本語言,但它是真正的編譯語言
初學者,看它使用了
let a = 4
var b = "hello"

沒有類型定義,就想當然的覺得它是腳本語言,解釋執行,這是錯誤的。上面兩行語句是用了類型推導,類似 C++ 裡面的auto。swift跟objc的運行時環境一樣,寫的程序跑起來不會比objc慢。swift區分了struct和class, 分別使用傳值跟傳引用。適當地使用struct,應該會比objc要快一點。

swift 吸收了很多其它語言的語法,寫起來比objc簡潔得多,不過它骨子裡面的概念,跟原來objc差不多
編程語言的語法重要,但是語法背後的概念更重要。比如面向對象,常用概念無非是,繼承,多態,封裝,信息隱藏等。繼承又可能分成多重繼承,介面繼承,實現繼承。或者還會有些嵌套類,嵌套函數等等。
當明白語法背後的概念,知道為什麼需要有這些東西。之後從一門語言切換到另一門有著相同概念的語言,其實很容易。
而語法會影響表達,理論上每門語言都可以表達任何概念。不過當某種概念在某門語言中,很難表達出來,就會傾向於不這樣使用它,這種概念在那門語言的社區就難以被人熟知。
感覺上,swift有著 obj-c, C++, Ruby的影子。
暫時,我自己最喜歡的3個特性有
tuple,終於可以返回多個數值了。一行交換兩個值。C++裡面的tie+tuple也可以實現類似功能,不過使用庫,顯得噪音太多。
closure,喜歡它的簡寫,還有在函數最後一參數,可以寫在()外面。這些特性,用來寫函數式風格的程序,會很好看。而原來objc的block, 還有c++的function, 就太啰嗦了。
switch,case裡面的條件匹配。
這些語法,編譯最後還是會映射成原來objc的運行模型。原來objc的概念,引用記數,ARC, 屬性,協議,介面,初始化,擴展類,匿名函數等等,繼續有效。
我將swift看成是objc的一塊大大的語法糖。
有個大塊頭的東西,是原來objc沒有的,就是泛型。swift中 將那種操作寫一次,就可以作用多個類型的語法叫做generics(泛型),而C++中稱為template(模板),叫法不同,本質是同樣的東西。
總的說來,swfit 涵蓋了現在流行的編程方式,結構化,面向對象,泛型,函數式。

swift的新語法,可以很好地支持內部DSL
有一種編程風格,不太好歸類。就是將程序拆分成,描述+解釋。解釋部分寫一次,其它地方使用描述式的語句,而不是命令式的語句。
內部DSL,通常利用主語言的語法特性,創出一套寫法,來寫一些描述性的語句。這些語句組合起來,就像一門新語言似得。這個比較難理解。舉個例子(從ruby那裡借過來的),假如計算,幾小時之後的秒數。c語言中,大概會寫成
getHourSeconds(3)

而現在 swift中,只要定義了擴展
extension Int
{
var hours:Int
{
return self * 3600
}

var ago:Int
{
return -self
}
}

就可以寫成
3.hours
3.hours.ago

分別是3小時後的秒數,3小時前的秒數。
同理,也可以寫成
10.days
10.days.ago

這種寫法,看起來跟原來的命令式寫法完全不同。這些程序是描述性的。原來的objc, 做不到這點。 我估計swift以後會冒出大量這樣風格的庫。
這種風格,到底好不好,要看情況。比較方便定義內部DSL的語言, 我自己知道的有C++, Ruby, Lisp。現在多了Swift。

認為所有人都是0基礎的,是錯誤的
有些人學得特別快,因為之前的基礎好。語言的語法只是表面,表面的東西總是變動得比較快的。底下的東西重要得多,而看不見。水面一塊冰,有些人是冰山露出一角,有些人是無根的浮冰。看起來差不多,其實差別十分之大。
我相信有些人,在兩個小時之內就可以使用這門新語言。

提提那個Playground
之前蘋果的員工,Bret Victor 演講過個視頻。提到這個這種可視化編程。當我們每一步操作,都得到實時地反饋,我們的做法會有很多不同,做出的東西也會不同。這個Playground,用來學習swift的特性很好用,不過我還不知道怎麼才能跟工程結合起來使用,不作評論。

2. swift語言開發用什麼軟體

自從蘋果wwdc2014大會上推出swift語言之後,程序猿們就開始轉戰開發蘋果軟體;但是swift語言開發編程環境怎麼搭建呢?swift語言開發編程環境搭建教程:1、蘋果電腦一台。2、系統必須是10.9.3以上的。3、下載xcode 6.0 beta版本。xcode6.0beta安裝搞定之後,打開xcode,選擇新建一個」playgroud」,隨便命名一下項目名稱,寫如上代碼運行即可。

3. Swift 編程語言必須要在 蘋果電腦上運行嗎

1、swift目前必須用xcode開發,xcode只能運行在蘋果系統下。
2、注意蘋果系統與蘋果電腦是單獨的兩個概念,最簡單的方法,你可以在普通的windows系統上安裝虛擬機軟體vmware之類的,然後用vmware來安裝蘋果的mac osx系統,然後在這個蘋果系統下來安裝運行xcode。
3、當然,因為蘋果電腦與普通電腦的硬體是沒有任何區別的,所以理論上任何電腦上也都可以安裝上真正的蘋果系統,這種就叫做黑蘋果,不過其中最難的就是硬體驅動,要解決一是看硬體本身,二要看技術了。可以自己查找下。

4. swift 是面向對象編程還是面向過程,還是其他編程

Swift有面向過程,也有面向對象,也有面向協議。
其實很多語言都是這樣的

5. 編程零基礎如何學習 Swift

現在編程在我們生活中越來越多,有很多很都想學編程技術,但是因為都是剛接觸,不知道怎麼學習。但如果是想學編程,又還沒任何基礎,我能給的建議是:


1、想清楚自己的目的。

是為了充實自己,還是自己內心對計算機(不只是電腦)的渴望?如果是充實自己,那除了編程之外的基礎東西也夠學習了解很長一段時間了,比如計算機網路,計算機硬體,計算機歷史,計算機基礎結構等。同時這樣內容也是計算機專業的學生在大學里主修的課程。如果是對計算機的迷戀或者渴望,那就好辦了。興趣是最偉大的老師。以上的內容你都可以根據一個大學課程的安排選中自己想要了解的方向,深入學習。

總結:

計算機領域從概念,知識,體系架構,語言變成,運維整個過程,知識體系比較龐大,編程只是其中一個環節和領域,要做好,需總結,要了解上下文關系,體系知識關系。這些知識的培養與積累都是要在不斷的學習實踐過程中總結的。希望你在計算機領域能滿足自己的好奇心,也能創造更大的價值和成就。

6. 求swift編程語言的軟體

swift與object-c開發環境都一樣,都是mac os x上的xcode,也就是說你要麼有一台mac主機(筆記本或對台式機都行),要麼在windows上用虛擬機安裝mac os x,要麼去弄一台黑蘋果主機(蘋果電腦與普通電腦硬體沒有任何區別,在普通電腦上安裝的蘋果系統就稱之為黑蘋果)

7. swift是什麼意思 Swift編程語言有什麼用

1、swift目前必須用xcode開發,xcode只能運行在蘋果系統下。2、注意蘋果系統與蘋果電腦是單獨的兩個概念,最簡單的方法,你可以在普通的windows系統上安裝虛擬機軟體vmware之類的,然後用vmware來安裝蘋果的mac osx系統,然後在這個蘋果系統下來安裝運行xcode。3、當然,因為蘋果電腦與普通電腦的硬體是沒有任何區別的,所以理論上任何電腦上也都可以安裝上真正的蘋果系統,這種就叫做黑蘋果,不過其中最難的就是硬體驅動,要解決一是看硬體本身,二要看技術了。可以自己查找下。

8. swift這門編程語言會不會超越oc成為ios的主流開發語言為什麼

以蘋果的態度來看,應該是主推swift,但是這只要也得要一兩年的時間才能完全代替oc。所以說現在也不用急著學 swift,也不要抱著oc能一直作為主力開發語言的心態。

9. 蘋果的swift沒有編程基礎的人可以學嗎 Java c語言都沒學過

可以。不過沒有基礎的話,最好找一個資料多點,通用性廣點的語言來入門吧。

10. 如何更好的學習Swift編程

建議考慮時下火爆的python,python不僅入門簡單,靈活高效。更是在人工智慧方面應用廣泛,對將來大有裨益。

熱點內容
資料庫第一章 發布:2024-11-15 22:27:07 瀏覽:592
測試php性能工具 發布:2024-11-15 22:19:37 瀏覽:579
安卓手機怎麼給王者榮耀差評 發布:2024-11-15 22:16:47 瀏覽:269
c調用python返回 發布:2024-11-15 22:14:23 瀏覽:942
優酷無法上傳高清視頻 發布:2024-11-15 22:13:13 瀏覽:732
源碼倉 發布:2024-11-15 22:07:29 瀏覽:721
極路由外網訪問 發布:2024-11-15 21:49:56 瀏覽:489
lispc語言 發布:2024-11-15 21:45:32 瀏覽:850
linux誤刪除目錄恢復 發布:2024-11-15 21:41:13 瀏覽:286
手機密碼忘了怎麼修改 發布:2024-11-15 21:40:04 瀏覽:335