導讀:雖然Swift出生才一年,但是它已經成爲最流行的編程語言之一了。它的語法很簡單,以至於當它發佈的時候,java script開發者感覺就像下圖一樣。以下是由本站小編J.L爲您整理推薦的Swift筆試試題及其答案,歡迎參考閱讀。
事實上,Swift是一種複雜的語言。它包含面向對象和函數方法這兩個方面,並且隨着新版本的發佈在一直進化。
你可以用這些問題來測試應聘者關於Swift方面的知識水平,或者測試一下你自己。如果你不知道答案,沒關係,沒一個問題下面都有答案供你學習。
這些問題包含兩個方面:
筆試問題:透過電子郵件做一個編程測試是極好的,因爲這涉及到寫大量的代碼,從代碼質量上可以看出一個人的水平。
面試問題:電話面試或者面對面面試也是很好的,因爲對面試者來說口頭交流會更方面。
每個方面有分成三個等級:
初級:適合讀了一到兩本有關Swift的書,並且已經開始用Swift開發應用程序的初學者。
中級:適合那些對Swift語言的概念有深刻理解和強烈興趣的,並且一直在閱讀大量有關Swift的博客文章並進行實踐的中級工程師。
進階:適合那些以探索Swift語言知識爲樂趣,挑戰自己,使用前言技術的人們。
假如你想回答這些問題,我建議你在回答這些問題之前,開啟Playground執行一下這些問題的代碼。這些問題的答案都在Xcode 7.0 Beta 6 版本中測試過。
準備好了嗎?繫好安全帶,現在就開始!
筆試問題
初學者
問題1、(Swift 1.0及其之後的版本的問題)有什麼更好的方法來寫下面的for循環?
for var i = 0; i < 5; i++ {
print("Hello!")
}
答案:
for _ in 0...4 {
print("Hello!")
}
Swift 實現了兩個數組運算符closed operator 和 half-operator.前者包含數組中得所有值。例如:下面的例子包含從0到4得所有整數
0...4
half-operator不包含數組中的最後一個元素,下面的例子會得到的結果和上面的一樣:
0..<5
問題2– Swift 1.0 or later
思考下面的問題:
struct Tutorial {
var difficulty: Int = 1
}
var tutorial1 = Tutorial()
var tutorial2 = tutorial1
iculty = 2
iculty 和 iculty的值分別是多少?假如Tutorial是一個類,會有什麼不同?並說明原因。
答案:iculty 的值是1,然而iculty的值是2.
在Swift中結構體是值類型,他們的值是複製的而不是引用的。下面的一行代碼意思是複製了tutorial1的值並把它賦值給tutorial2:
var tutorial2 = tutorial1
從這一行開始,tutorial2值得改變並不影響tutorial1的值。
假如Tutorial是一個類,iculty和iculty的值將都會是2.在Swift中類對象都是引用類型。tutorial1屬性的任何改變將會反應到tutorial2上,反之亦然。
問題3 – Swift 1.0 or later
view1聲明成var類型,view2聲明let類型。這裏有什麼區別嗎?下面的最後一行代碼能編譯嗎?
import UIKit
var view1 = UIView()
a = 0.5
let view2 = UIView()
a = 0.5 // Will this line compile?
答案:view1是個變量可以重新賦值給一個新的實例化的UIView對象。使用let你只賦值一次,所以下面的代碼是不能編譯的:
view2 = view1 // Error: view2 is immutable