跟著洲洲哥一塊學習Swift 陣列

2021-07-13 22:43:44 字數 2152 閱讀 7045

swift語言裡的陣列和字典中儲存的資料值型別必須明確。 這意味著我們不能把不正確的資料型別插入其中。 同時這也說明我們完全可以對獲取出的值型別非常自信。 swift對顯式型別集合的使用確保了我們的**對工作所需要的型別非常清楚,也讓我們在開發中可以早早地找到任何的型別不匹配錯誤。

陣列使用有序列表儲存相同型別的多重資料。相同的值可以多次出現在乙個陣列的不同位置中。

swift陣列對儲存資料有具體要求。 不同於 objective-c的nsarray和nsmutablearray類,他們可以儲存任何型別的例項而且不提供他們返回物件的任何本質資訊。 在 swift 中,資料值在被儲存進入某個陣列之前型別必須明確,方法是通過顯式的型別標註或型別推斷,而且不是必須是class型別。例如: 如果我們建立了乙個int值型別的陣列,我們不能往其中插入任何不是int型別的資料。 swift 中的陣列是型別安全的,並且它們中包含的型別必須明確。

陣列的簡單語法

寫 swift 陣列應該遵循像array這樣的形式,其中sometype是這個陣列中唯一允許存在的資料型別。 我們也可以使用像sometype這樣的簡單語法。 儘管兩種形式在功能上是一樣的, 但是我們推薦較短的那種,而且在本文中都會使用這種形式來使用陣列。

陣列構造語句

我們可以使用字面語句來進行陣列構造,這是一種用乙個或者多個數值構造陣列的簡單方法。字面語句是一系列由逗號分割並由方括號包含的數值。 [value 1, value 2, value 3]。

// 會根據陣列的初始值來判斷該陣列的型別

var onearry = ["a","b"]

// 宣告乙個為型別為string型別的陣列

var shoppinglist:[string] = ["e", "m"]

以此類推

1.定義個int型別的陣列

var twoarry:[int] = [1,2,3]

2.定義乙個double型別的陣列

var twoarryd:[double] = [1.1,2.2,3.3]

swift給我我們提供了乙個函式

/// construct a array of `count` elements, each initialized to

/// `repeatedvalue`.

public init(count: int, repeatedvalue: element)

可以初始化乙個陣列型別,陣列的元素個數,每個元素的初始值

//快速宣告乙個陣列 有數量 和 初始值

var onestrings = [string](count:2,repeatedvalue: "3")

可以這樣

// 宣告乙個int型別的資料有9個元素,並且每個陣列的元素的初始化值都是0

[int](count:9,repeatedvalue:0)

if temparry.isempty else 

3:用[insert]方法在陣列後面新增新的資料項

namearry.insert("dev", atindex:0)

4:用 += 方法新增資料

namearry += ["bb","tttt"]

普通遍歷
for items in namearry
遍歷的時候同時獲取索引和對應的資料
for

(inde,values)

innamearry.enumerate

()

在swift中如果建立乙個陣列沒有明確的型別指定,那他會根據陣列裡的資料來自動判斷型別。這樣搞還是很安全的。

var threedoubles = [string](count:2,repeatedvalue: "3")// ["3.0", "3.0", "3.0"]

var anotherc = array(count:3,repeatedvalue:"3.0")// ["12", "3.0", "3.0", "3.0"]

var sumstr = threedoubles + anotherc// ["3", "3", "12", "3.0", "3.0", "3.0"]

給我一塊石頭

給我一塊石頭!專案經理應該小心的遊戲之一 克里夫與團隊一起,用一周時間制訂出了專案日程。他們完成了 哈德遜灣式啟動 並且確定已經識別出了主要的技術風險。他將風險和日程安排告訴了他的上司諾姆。你就不能再早點完成專案了麼?諾姆的一句話將克里夫送回了團隊,步履蹣跚。克里夫與團隊又花了一周時間修改時間表,得...

我是一塊硬碟

發信人 lesliechen 打死我也不說 信區 campus east 標 題 我是一塊硬碟 zz 發信站 bbs 同舟共濟站 wed jul 7 13 27 53 2004 站內 我是乙個硬碟,st380021a,在乙個普普通通的台式電腦裡工作。別人總認為我們是高科技白領,工作又乾淨又體面,似乎...

我是一塊硬碟

我是一條記憶體。我在一台台式電腦裡工作,但是我記不得我是從 來的,是什麼牌子,因為我健忘。我的上司是cpu大哥,他是我們的老大。都說他是電腦的腦子,可是我看他的腦子 實在是太小了,比我還要健忘。每天他總是不停地問我,某某頁某某位址存的是什麼?我總是不厭其煩地告訴他,可是不出一秒鐘他又忘記了,又要問一...