一(yī)、蘋果的編程語言 Swift 是用什麽開(kāi)發的
swift是什麽?
swift是蘋果于wwdc 2014發布的編程語言,這裏引用the swift programming language的原話(huà):
swift is a new programming language for ios and os x apps that builds on the best of c and objective-c, without the constraints of c compatibility. swift adopts safe programming patterns and adds modern features to make programming easier, more flexible and more fun. swift’s clean slate, backed by the mature and much-loved cocoa and cocoa touch frameworks, is an opportunity to imagine how software development works. swift is the first industrial-quality systems programming language that is as expressive and enjoyable as a scripting language.
簡單的說:
swift用來寫ios和os x程序。(估計也不會支持其它屌絲系統)
swift吸取了c和objective-c的優點,且更加強大(dà)易用。
swift可以使用現有的cocoa和cocoa touch框架。
swift兼具編譯語言的高性能(performance)和腳本語言的交互性(interactive)。
swift語言概覽
基本概念
注:這一(yī)節的代碼源自the swift programming language中(zhōng)的a swift tour。
hello, world
類似于腳本語言,下(xià)面的代碼即是一(yī)個完整的swift程序。
println("hello, world")
變量與常量
swift使用var聲明變量,let聲明常量
var myvariable = 42 myvariable = 50 let myconstant = 42
類型推導
swift支持類型推導(type inference),所以上面的代碼不需指定類型,如果需要指定類型:
let explicitdouble : double = 70
swift不支持隐式類型轉換(implicitly casting),所以下(xià)面的代碼需要顯式類型轉換(explicitly casting):
let label = "the width is " let width = 94 let width = label + string(width)
字符串格式化
swift使用\(item)的形式進行字符串格式化:
let apples = 3 let oranges = 5 let applesummary = "i have \(apples) apples." let applesummary = "i have \(apples + oranges) pieces of fruit."
數組和字典
swift使用[]操作符聲明數組(array)和字典(dictionary):
var shoppinglist = ["catfish", "water", "tulips", "blue paint"] shoppinglist[1] = "bottle of water" var occupations = [ "malcolm": "captain", "kaylee": "mechanic", ] occupations["jayne"] = "public relations"
一(yī)般使用初始化器(initializer)語法創建空數組和空字典:
let emptyarray = string[]() let emptydictionary = dictionary<string, float>()
如果類型信息已知(zhī),則可以使用[]聲明空數組,使用[:]聲明空字典。
控制流
概覽
swift的條件語句包含if和switch,循環語句包含for-in、for、while和do-while,循環/判斷條件不需要括号,但循環/判斷體(tǐ)(body)必需括号:
let individualscores = [75, 43, 103, 87, 12] var teamscore = 0 for score in individualscores { if score > 50 { teamscore += 3 } else { teamscore += 1 } }
可空類型
結合if和let,可以方便的處理可空變量(nullable variable)。對于空值,需要在類型聲明後添加?顯式标明該類型可空。
var optionalstring: string? = "hello" optionalstring == nil var optionalname: string? = "john appleseed" var gretting = "hello!" if let name = optionalname { gretting = "hello, \(name)" }
靈活的switch
swift中(zhōng)的switch支持各種各樣的比較操作:
let vegetable = "red pepper" switch vegetable { case "celery": let vegetablecomment = "add some raisins and make ants on a log." case "cucumber", "watercress": let vegetablecomment = "that would make a good tea sandwich." case let x where x.hassuffix("pepper"): let vegetablecomment = "is it a spicy \(x)?" default: let vegetablecomment = "everything tastes good in soup." }
二、Objective-C 和 Swift 語言,哪個更容易學習?
這個問題很有意思,下(xià)面我(wǒ)來談談我(wǒ)的看法。
objective-c
objective-c,通常寫作objc和oc,和目的c或obj-c使用量少,是一(yī)種面向對象的編程語言擴展它主要用于兩mac os x和gnustep系統使用的程序和标準,在nextstep,它是更基本的程序。gcc和clang是objective-c包含編譯器和objective-c可以編譯gcc和铿锵的操作系統。
swift
swift,蘋果的wwdc 2014上發布新的開(kāi)發語言(蘋果開(kāi)發者大(dà)會),可以與objective-c *在mac os和ios平台運行,建立基于蘋果平台的應用。
swift是一(yī)種易于使用的編程語言,它是與腳本語言一(yī)樣具有相同表現力和興趣的第一(yī)套系統編程語言。swift的設計以安全爲出發點,以避免各種常見的編程錯誤。
objective-c和swift哪個更容易學?
objective-c是一(yī)個過程,面向對象和非常傳統的語言是c的擴展,它主要有面向過程語言的所有特征,自然與代碼的各種控制結構來實現基本的邏輯控制結構是objective-c當正常使用模式。它不是一(yī)個通用的支持單一(yī)繼承。
swift是不一(yī)樣的。如果你不懂泛型,最基本的是什麽?和!它的本質是無法理解的。此外(wài),可選實際上是枚舉類型。如果我(wǒ)們還沒有碰到類似的功能語言haskell,還要花很多時間來估計和理解這樣的枚舉。swift的句法特征非常複雜(zá)。在蘋果官方文件中(zhōng),語言指南(nán)并不能完全涵蓋所有的特性。
總之,還是objective-c更容易學一(yī)點。
三、iOS程序可使用Objective-C或Swift語言進行開(kāi)發嗎(ma)?
os x系統環境下(xià)的xcode,語言爲objective-c或蘋果新推出的swift語言。
xcode 是蘋果公司開(kāi)發的編程軟件,是開(kāi)發人員(yuán)建立os x 和 ios 應用程序的最快捷的方式。xcode 4所使用的編譯器爲llvm編譯器,llvm編譯器的前端是clang。xcode 的核心部分(fēn)是蘋果電(diàn)腦公司下(xià)一(yī)代業界标準的 gcc編譯器gcc 4.0。新的編譯器利用許多先進的最優化技術幫你從現存編碼中(zhōng)獲得更多性能。從超級計算世界借鑒來的自動向量化(auto-vectorization)技術可以幫助你釋放(fàng)每台 intel 系統中(zhōng)速度引擎的能量,而不需要編寫向量化編碼。
objective-c語言,是擴充c的面向對象編程語言。其主要使用于mac os x和gnustep這兩個使用openstep标準的系統,該語言是1980年代初布萊德·确斯(brad cox)在其公司stepstone發明的。
swift語言,蘋果于2014年wwdc發布的新開(kāi)發語言,可與objective-c共同運行于mac os和ios平台,用于搭建基于蘋果平台的應用程序。該語言語法内容混合了oc,js,python,語法簡單,使用方便,并可與oc混合使用。并于2014年6月12日發布了《swift中(zhōng)文版》第一(yī)版。