《從零開始學Swift》學習筆記(Day 35)——會使用下標嗎?

原創文章,歡迎轉載。轉載請註明:關東昇的博客php

看下面的示例代碼是否是使用過:java

var studentList: String[]  = ["張三","李四","王五"] studentList[0] = "諸葛亮"   var studentDictionary = [102: "張三",105: "李四", 109: "王五"] studentDictionary[110] = "董六"

在訪問數組和字典的時候,能夠採用下標訪問。其中數組的下標是整數類型索引,字典的下標是它的「鍵」。 數組

下標微信

Swift中的下標至關於Java中的索引屬性和C#中的索引器。函數

下標訪問的語法格式以下:網站

面向對象類型 類型名 {     其餘屬性      ...     subscript(參數: 參數數據類型) -> 返回值數據類型 {          get {            return 返回值        }              set(新屬性值) {           ...        }              }            }

下標也有相似於計算屬性的gettersetter訪問器。spa

getter訪問器是一個方法,在最後使用return語句將計算結果返回。.net

setter訪問器「新屬性值」是要賦值給屬性值。參數的聲明能夠省略,系統會分配一個默認的參數newValue 設計

示例:二維數組code

    在Swift中沒有提供二維數組,只有一維數組Array。能夠自定義一個二維數組類型,而後經過兩個下標參數訪問它的元素,形式上相似於C語言的二維數組。

採用下標的二維數組示例代碼以下:

struct DoubleDimensionalArray {  //定義了二維數組結構體         let rows: Int, columns: Int       //存儲屬性rows和columns     var grid: [Int]         init(rows: Int, columns: Int) {   //構造函數         self.rows = rows         self.columns = columns         grid = Array(count: rows * columns, repeatedValue: 0)  //初始化存儲屬性grid     }         subscript(row: Int, col: Int) -> Int {    //定義下標                 get {             return grid[(row * columns) + col]          }                 set (newValue1){             grid[(row * columns) + col] = newValue1             }     }     }   var ary2 = DoubleDimensionalArray(rows: 10, columns: 10) //建立並初始化10×10大小的二維數組   //初始化二維數組 for var i = 0; i < 10; i++ {     for var j = 0; j < 10; j++ {         ary2[i,j] = i * j                } }   //打印輸出二維數組 for var i = 0; i < 10; i++ {     for var j = 0; j < 10; j++ {         print("\t \(ary2[i,j])")     }     print("\n") }

 輸出結果以下:

0  0  0  0  0  0  0  0  0  0

0  1  2  3  4  5  6  7  8  9

0  2  4  6  8  10  12  14  16  18

0  3  6  9  12  15  18  21  24  27

0  4  8  12  16  20  24  28  32  36

0  5  10  15  20  25  30  35  40  45

0  6  12  18  24  30  36  42  48  54

0  7  14  21  28  35  42  49  56  63

0  8  16  24  32  40  48  56  64  72

0  9  18  27  36  45  54  63  72  81


歡迎關注關東昇新浪微博@tony_ 關東昇。

關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程信息
 
更多精品iOSCocos、移動設計課程請關注智捷課堂官方網站:
http://www.zhijieketang.com
智捷課堂論壇網站:
http://51work6.com/forum.php

相關文章
相關標籤/搜索