亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Swift > 正文

詳解Swift編程中下標的用法

2020-03-09 17:52:40
字體:
供稿:網(wǎng)友
這篇文章主要介紹了Swift編程中下標的用法,是Swift入門學(xué)習中的基礎(chǔ)知識,需要的朋友可以參考下
 

訪問一個集合的元素成員,在類中的序列和列表,結(jié)構(gòu)和枚舉都可以使用下標。這些下標用于存儲和使用索引來檢索值。數(shù)組元素可使用如:someArray[index],在 Dictionary 實例及其后續(xù)成員元素的訪問也可以使用如:someDicitonary[key]。

對于單一類型,下標范圍可以從單一到多個聲明。我們可以用適當?shù)南聵酥剌d傳遞給下標索引值的類型。下標也可以根據(jù)輸入數(shù)據(jù)類型聲明范圍從單一維度到多維度。

下標聲明語法和用法
讓我們回顧一下計算屬性。下標也遵循計算屬性相同的語法。對于查詢類型的實例下標括在方括號內(nèi),接著是實例名稱。下標語法遵循結(jié)構(gòu)作為 “實例方法” 和 “計算屬性” 相同的語法。“subscript” 關(guān)鍵字用來定義標,用戶可以指定一個或多個參數(shù),它們帶有返回類型。下標可以有讀寫或只讀屬性和實例存儲和檢索使用 “getter” 和 “setter” 屬性作為計算屬性。

語法

復(fù)制代碼代碼如下:

subscript(index:Int)->Int{get{// used for subscript value declarations}set(newValue){// definitions are written here}}

示例1
復(fù)制代碼代碼如下:

struct subexample {let decrementer:Int
    subscript(index:Int)->Int{return decrementer / index
    }}let division = subexample(decrementer:100)

 

println("The number is divisible by /(division[9]) times")
println("The number is divisible by /(division[2]) times")
println("The number is divisible by /(division[3]) times")
println("The number is divisible by /(division[5]) times")
println("The number is divisible by /(division[7]) times")


當我們使用 playground 運行上面的程序,得到以下結(jié)果

 

The number is divisible by 11 timesThe number is divisible by 50 timesThe number is divisible by 33 timesThe number is divisible by 20 timesThe number is divisible by 14 times

示例2

復(fù)制代碼代碼如下:

class daysofaweek {privatevar days =["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","saturday"]
    subscript(index:Int)->String{get{return days[index]}set(newValue){self.days[index]= newValue
        }}}var p = daysofaweek()

 

println(p[0])
println(p[1])
println(p[2])
println(p[3])


當我們使用 playground 運行上面的程序,得到以下結(jié)果

 

SundayMondayTuesdayWednesday

下標選項
下標采用單一到多元的輸入?yún)?shù),這些輸入?yún)?shù)也屬于任意數(shù)據(jù)類型。還可以使用變量,可變參數(shù)的參數(shù)。下標不能提供缺省參數(shù)值,或使用任何 in-out 參數(shù)。

定義多個標被稱為“下標重載'在一個類 或結(jié)構(gòu)體根據(jù)需要可以提供多個下標定義。這些多個標是基于被下標括號內(nèi)聲明值的類型推斷。

復(fù)制代碼代碼如下:

structMatrix{let rows:Int, columns:Intvarprint:[Double]
    init(rows:Int, columns:Int){self.rows = rows
        self.columns = columns
        print=Array(count: rows * columns, repeatedValue:0.0)}
    subscript(row:Int, column:Int)->Double{get{returnprint[(row * columns)+ column]}set{print[(row * columns)+ column]= newValue
        }}}var mat =Matrix(rows:3, columns:3)

 

mat[0,0]=1.0
mat[0,1]=2.0
mat[1,0]=3.0
mat[1,1]=5.0

println("/(mat[0,0])")
println("/(mat[0,1])")
println("/(mat[1,0])")
println("/(mat[1,1])")


當我們使用 playground 運行上面的程序,得到以下結(jié)果

 

1.02.03.05.0

Swift 下標支持單參數(shù)到多參數(shù)聲明相應(yīng)數(shù)據(jù)類型。該程序聲明的“矩陣”結(jié)構(gòu)為2*2維數(shù)組矩陣來存儲 “Double” 數(shù)據(jù)類型。 矩陣參數(shù)被輸入整數(shù)數(shù)據(jù)類型用來聲明行和列。

矩陣新實例是通過使行和列數(shù)來初始化創(chuàng)建的,如下所示。

復(fù)制代碼代碼如下:

 var mat = Matrix(rows: 3, columns: 3) 

矩陣值可通過傳遞行和列值到下標,通過逗號隔開,進行定義如下所示。

 

 

復(fù)制代碼代碼如下:

mat[0,0] = 1.0  
mat[0,1] = 2.0
mat[1,0] = 3.0
mat[1,1] = 5.0

 

 


 

下標方法的定義
下標方法的定義語法與實例方法和計算屬性的語法類似。
       下標方法使用subscript關(guān)鍵字來指示是一個下標方法。與實例方法一樣,下標方法定義中可以規(guī)定一個或多個輸入?yún)?shù),并帶有一個返回類型。與實例方法不同的是下標方法可以是可讀寫的或是只讀的。與計算屬性的定義一樣,下標方法通過使用getter和setter來傳達下標方法的行為。如果在下標方法的定義中g(shù)etter和setter都被指定,則定義了一個可讀寫的下標方法,如果下標方法的定義中不包含setter,則定義了一個只讀的下標方法,并且這時代表getter方法的關(guān)鍵字get也可以省略。下標方法定義的完整語法如下:

復(fù)制代碼代碼如下:

subscript(index:Int) ->Int {
   get {
       // return an appropriate subscript value here
    }
   set(newValue) {
       // perform a suitable setting action here
    }
}
     該例定義了一個可讀寫的下標方法,newValue可以指定,也可以不指定,不指定時使用默認的參數(shù)名newValue。
     如下例子展示了一個只讀下標方法的定義和使用。由于只讀下標方法只指定一個getter,意義是明確的,因此可以省略get關(guān)鍵字。
struct TimesTable {
   let multiplier:Int
   subscript(index:Int) ->Int {
       return multiplier *index
    }
}
let threeTimesTable =TimesTable(multiplier:3)
println("six times three is/(threeTimesTable[6])")
// prints "six times three is 18”

下標方法的使用 
        你能為一個類型定義和實現(xiàn)多個下標方法,編譯器基于你傳送給下標方法的索引參數(shù)的類型來推斷和選擇適當?shù)南聵朔椒ā?br />         與方法類似,下標方法可以包含任意數(shù)量的輸入?yún)?shù),且這些輸入?yún)?shù)的類型可以是任何類型,下標方法也能返回任何類型。下標方法也能使用可變參數(shù),但不能使用in-out參數(shù)也不能通過默認參數(shù)值。
                  如可以定義一個帶有多個輸入?yún)?shù)的表示多緯度的下標方法,下面的例子展示了如何為一個矩陣結(jié)構(gòu)定義一個帶兩個整數(shù)類型的下標方法以及如何使用,定義的下標方法用來索引矩陣中定義的兩緯度的元素。
復(fù)制代碼代碼如下:

struct Matrix {
   let rows:Int,columns:Int
   var grid:Double[]
   init(rows:Int,columns:Int) {
       self.rows =rows
       self.columns =columns
       grid =Array(count:rows *columns,repeatedValue:0.0)
    }
 subscript(row:Int,column:Int) ->Double {
       get {
         
           return grid[(row *columns) +column]
        }
       set {
       
           grid[(row *columns) +column] =newValue
        }
    }
}
     
 var matrix =Matrix(rows:2,columns:2)
matrix[0,1] =1.5
matrix[1,0] =3.2


注:相關(guān)教程知識閱讀請移步到swift教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
999福利视频| 黄色软件视频在线观看| 性色视频在线| 高清视频欧美一级| 国产一级大片在线观看| 亚洲视频 欧美视频| 亚洲天堂在线播放| 精品一区二区三区免费毛片爱| 国产精品入口日韩视频大尺度| 色综合久久六月婷婷中文字幕| 欧美精品一区二区三区三州| 熟女人妇 成熟妇女系列视频| 免费在线观看视频一区| 国产欧美综合一区二区三区| 日本亚洲一区| 国产91精品青草社区| 在线视频中文亚洲| 久久久精品亚洲| 成人激情免费电影网址| 亚洲欧美国产高清| 91九色在线观看视频| 五月天丁香婷| 99久久99久久精品国产片果冻| 国产视频一区在线观看| 一区二区三区日韩欧美精品| 国产免费又粗又猛又爽| 欧美视频福利| 亚洲1024| 国产又黄又猛的视频| 国产亚洲精品一区二区在线观看| 亚洲人成人一区二区三区| 日本一区视频在线观看免费| 久久偷看各类wc女厕嘘嘘偷窃| 激情综合一区二区三区| www.久久ai| 久久综合五月婷婷| 精品日韩在线播放| 国产无遮无挡120秒| 久久久久综合一区二区三区| 久久久久国产免费免费| 亚洲精品亚洲人成在线| 亚洲一区二区影视| 91色在线播放| 国产一区二区电影在线观看| 中文字幕乱伦视频| 性猛交╳xxx乱大交| 欧美欧美天天天天操| 亚洲精品久久久久久久久久久久久久| 999精品嫩草久久久久久99| 中文日本高清免费| 天美传媒免费在线观看| 欧美一级艳片视频免费观看| 国产精品久久| 亚洲一区二区av电影| 美女黄视频在线播放| 91肉色超薄丝袜脚交一区二区| 美女免费黄色| 中文字幕免费在线观看视频一区| 日韩欧美国产综合在线| jlzzjlzz亚洲日本少妇| 中文字幕免费在线不卡| 国产精品理论片在线观看| 国产欧美日本在线| 亚洲高清久久| 99riav国产| 香蕉521av成人网| 一区二区三区四区亚洲| 免费成人你懂的| 久久久综合香蕉尹人综合网| 超碰中文在线| 亚洲在线电影| 一本大道久久a久久综合| 国产精品福利一区二区三区| 亚洲欧美激情视频在线观看一区二区三区| 欧美一区二区三区免费观看视频| 粉嫩一区二区三区在线看| 亚洲图片小说在线| 免费男女羞羞的视频网站中文版| 天然素人一区二区视频| 亚洲av片不卡无码久久| 国产精品㊣新片速递bt| 天天性天天草| www.欧美精品一二三区| 另类尿喷潮videofree| 久久久影院官网| 奇米精品一区二区三区| 亚洲乱码国产乱码精品精软件| 成人美女视频在线观看18| 丁香花五月激情| 美女网站免费观看视频| 69av.com| 欧美成人自拍视频| 日韩经典一区二区| 久久久久国产免费免费| 艳妇荡乳欲伦69影片| 日本一本a高清免费不卡| 免费在线高清av| 97秋霞电影网| 中文字幕在线观看第三页| 欧美午夜不卡影院在线观看完整版免费| 日本道不卡免费一区| 欧美三级在线免费观看| 全部a∨一极品视觉盛宴| xvideos成人免费中文版| 日本午夜激情视频| 高清国产一区二区三区四区五区| 亚洲av无码成人精品区| 欧美乱妇一区二区三区不卡视频| 136福利精品导航| 超碰免费在线97| 日韩久久久久久久久久| 久久麻豆一区二区| 久久亚洲精品小早川怜子66| www.日韩av.com| 欧美在线影院在线视频| 黄色一级片免费的| 日韩精品一区二区三区视频| 久久久男人的天堂| 国产经典中年夫妇盗摄| 国产精品一区二区男女羞羞无遮挡| 亚洲成人在线视频播放| 无码国产伦一区二区三区视频| 肉色超薄丝袜脚交一区二区| 亚洲人成网77777色在线播放| 亚洲一区自拍偷拍| 日韩一二三区视频| 黄色精品一区| 亚洲成人偷拍自拍| 免费三片在线播放| 鲁一鲁一鲁一鲁一av| 日韩亚洲欧美中文字幕| 99re6在线视频精品免费| 秋霞精品一区二区三区| 欧美日韩午夜视频在线观看| 丰满湿润大白屁股bbw按摩| 东京热一区二区三区四区| 国产尤物av一区二区三区| 美女视频黄的免费| 911精品国产| 欧美日韩亚洲一区在线观看| 欧洲成人午夜精品无码区久久| 国产黄色免费网| 精品少妇一区二区三区在线播放| 国产视频精品一区二区三区| 国产精品ⅴa在线观看h| 亚洲精品高清视频在线观看| 开心久久婷婷综合中文字幕| 四虎www成人影院观看| 亚洲精品日韩在线观看| 影音先锋日韩资源| 成人爱爱网址| 欧美日韩精品中文字幕一区二区| 国产精品久久97| 视频在线这里都是精品| 亚洲免费在线观看| 性生活视频网站| 91www成人久久| 欧美午夜国产| 精品影院一区二区久久久| 波多野结衣免费观看| av毛片在线免费看| 婷婷亚洲五月| 不卡电影免费在线播放一区| 日韩经典在线视频| 福利在线视频导航| 国产美女精品在线| 国产亚洲精品久久久久久青梅| 农村少妇一区二区三区四区五区| 青青草手机在线视频| 91精品啪在线观看国产爱臀| 日韩mv欧美mv国产网站| 在线免费黄网| 美女无遮挡网站| 欧美先锋影音| 色狠狠久久aa北条麻妃| 国产精品男女猛烈高潮激情| 久久久国产成人| 青青草av在线播放| 青娱乐精品在线| 中国字幕a在线看韩国电影| 热re99久久精品国产99热| 午夜精品一区二区三级视频| 欧美69精品久久久久久不卡| 久久国产精品久久久| 久久久久久久久久久影视| 国产精品久久久久蜜臀| 欧美激情一区二区三区成人| 欧美精品乱码久久久久久按摩| 丁香网亚洲国际| 国产在线视视频有精品| 国产精品久久久久久久久久久久久久久| 久久久久久久一区二区三区| 美女扒开腿免费视频| 在线免费看a| 欧美极品色图| 精品一区av| 亚洲人成电影在线| 日本特黄一级片| jizz一区二区三区| 99精品欧美一区二区蜜桃免费| 先锋影音av资源网| 午夜精品理论片| 国产精品二区三区四区| 日韩免费在线视频| 欧美一区二区视频在线观看2022| 欧美三级午夜理伦三级中文幕| 日韩中文字幕在线视频观看| 亚洲3p在线观看| 99在线免费视频| 欧美精品少妇一区二区三区| 亚洲性线免费观看视频成熟| 国产精品一码二码三码在线| 91碰在线视频| 免费观看亚洲| 久久国产热视频| 亚洲人成在线播放| 国产调教视频在线观看| 国产成人天天5g影院在线观看| 日本一区二区视频| 超碰在线国产| 亚洲欧洲日产国码无码久久99| 日韩av成人高清| 亚洲色图视频网站| 校花撩起jk露出白色内裤国产精品| 特级西西人体高清大胆| 男人的天堂最新网址| 亚洲国产一区二区久久久777| 久久精品视频久久| 欧美尿孔扩张虐视频| 中文字幕日韩精品在线| 性孕妇free特大另类| 久久这里只精品| 亚洲综合图片网| 黄色aa久久| 黄色资源在线看| 风间由美一区| 国产一区二区视频在线观看| 欧美一级三级| 亚洲国产一区二区三区高清| 精品福利在线观看| 青青九九免费视频在线| 国产伦精品一区二区三区视频黑人| 成人性生交大片免费看中文视频| 一本一道久久a久久精品综合蜜臀| 亚洲精品成人久久久| 一本色道久久88亚洲精品综合| 国产51人人成人人人人爽色哟哟| 久久综合精品视频| 丰满少妇大力进入| 日本少妇高清视频| 青青青在线视频| 国产又大又粗又爽的毛片| 欧美男男freegayvideosroom| 美女av在线播放| 99精品99久久久久久宅男| 中国精品一区二区| 欧美激情亚洲综合| 亚洲精品一区二区妖精| 国产一级在线观看www色| 色yeye香蕉凹凸一区二区av| 日本色护士高潮视频在线观看| 亚洲一区二区偷拍精品| 日本vs亚洲vs韩国一区三区| 欧美另类69精品久久久久9999| 性chinese极品按摩| 精品久久久久久一区二区里番| xxxxx性13一14| 欧洲金发美女大战黑人| 国产成+人+综合+亚洲欧美| 在线观看黄色av| 亚洲国产日韩在线一区模特| 亚洲精品综合久久| 亚洲jjzzjjzz在线观看| 一级片在线观看| 日韩精选在线观看| 动漫av在线免费观看| 91社在线播放| 日韩大片免费观看视频播放| 亚洲第一页在线播放| 亚洲中文字幕一区| 久久久久久九九九| 九色自拍论坛| 成人影院在线观看| jizz免费视频| 国产精品综合久久久久| 欧美日韩综合在线| 日本中文字幕观看| 99伊人成综合| 成人午夜伦理影院| 亚洲影视在线观看| 色老头一区二区三区在线观看| 国产精品第七影院| 国产成人精品999在线观看| 精品色999| 国模吧一区二区| 中文字幕在线视频久| 精品视频1区2区3区| 亚洲国产精品久久91精品| 精品国产午夜福利在线观看| 国产亚洲二区| 久久这里只有精品99| 动漫一区二区| 日韩国产一区二区| 国产一级淫片a视频免费观看| 精品免费囯产一区二区三区| 无码 制服 丝袜 国产 另类| 午夜在线不卡| 青青青爽在线视频免费观看| www国产免费| 国产乱码精品一品二品| 亚洲三级黄色片| 国产夫妻在线播放| ㊣最新国产の精品bt7086| 高清成人av| 国产日韩精品suv| 精品国产乱码久久久久久蜜臀网站| 亚洲男人天堂古典| 欧美一区 二区 三区| 911久久香蕉国产线看观看| 欧美大黑bbbbbbbbb在线| 国产精品视频一| 欧美黑人乱大交ⅹxxxxx| 国产av无码专区亚洲av麻豆| 68国产成人综合久久精品| 中文字幕久久精品一区二区| 国产尤物av一区二区三区| 免费看涩涩视频软件| 欧美激情精品在线|