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

首頁(yè) > 編程 > Swift > 正文

詳解Swift語(yǔ)言中的類(lèi)與結(jié)構(gòu)體

2020-03-09 17:49:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了Swift語(yǔ)言中的類(lèi)與結(jié)構(gòu)體,是Swift入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
 

類(lèi)
在 Swift 中類(lèi)是建立靈活的構(gòu)建塊。類(lèi)似于常量,變量和函數(shù),用戶可以定義的類(lèi)的屬性和方法。Swift給我們提供了聲明類(lèi),而無(wú)需用戶創(chuàng)建接口和實(shí)現(xiàn)文件的功能。Swift 允許我們創(chuàng)建類(lèi)作為單個(gè)文件和外部接口,將默認(rèn)在類(lèi)一次初始化來(lái)創(chuàng)建。

使用類(lèi)的好處:

  • 繼承獲得一個(gè)類(lèi)的屬性到其他類(lèi)
  • 類(lèi)型轉(zhuǎn)換使用戶能夠在運(yùn)行時(shí)檢查類(lèi)的類(lèi)型
  • 初始化器需要處理釋放內(nèi)存資源
  • 引用計(jì)數(shù)允許類(lèi)實(shí)例有一個(gè)以上的參考

類(lèi)和結(jié)構(gòu)的共同特征:

  • 屬性被定義為存儲(chǔ)值
  • 下標(biāo)被定義為提供訪問(wèn)值
  • 方法被初始化來(lái)改善功能
  • 初始狀態(tài)是由初始化函數(shù)定義
  • 功能被擴(kuò)大,超出默認(rèn)值
  • 確認(rèn)協(xié)議功能標(biāo)準(zhǔn)

語(yǔ)法

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

Class classname {
   Definition 1
   Definition 2
    --- 
   Definition N
}

定義類(lèi)
復(fù)制代碼代碼如下:

class student{
   var studname: String
   var mark: Int 
   var mark2: Int 
}

創(chuàng)建一個(gè)實(shí)例的語(yǔ)法:
復(fù)制代碼代碼如下:

let studrecord = student()
示例
class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}

 

class studentMarks {
   var mark = 300
}
let marks = studentMarks()
println("Mark is /(marks.mark)")


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

 

Mark is 300

訪問(wèn)類(lèi)屬性作為引用類(lèi)型
類(lèi)屬性可使用 '.' 語(yǔ)法來(lái)訪問(wèn)。屬性名稱(chēng)由 "." 分離在實(shí)例名后。

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

class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}

 

class studentMarks {
   var mark1 = 300
   var mark2 = 400
   var mark3 = 900
}
let marks = studentMarks()
println("Mark1 is /(marks.mark1)")
println("Mark2 is /(marks.mark2)")
println("Mark3 is /(marks.mark3)")


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

 

Mark1 is 300Mark2 is 400Mark3 is 900

類(lèi)標(biāo)識(shí)符
在 Swift 引用多個(gè)常量和變量指向的單個(gè)實(shí)例。要了解常量和變量指向一個(gè)特定的類(lèi)實(shí)例標(biāo)識(shí)操作符的使用。 類(lèi)實(shí)例總是通過(guò)引用傳遞。在類(lèi)NSString,NSArray 和 NSDictionary 實(shí)例始終分配作為參考傳遞到現(xiàn)有的實(shí)例,而不是使用一個(gè)副本。

詳解Swift語(yǔ)言中的類(lèi)與結(jié)構(gòu)體

 

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

class SampleClass: Equatable {
   let myProperty: String
   init(s: String) {
      myProperty = s
   }
}
func ==(lhs: SampleClass, rhs: SampleClass) -> Bool {
   return lhs.myProperty == rhs.myProperty
}

 

let spClass1 = SampleClass(s: "Hello")
let spClass2 = SampleClass(s: "Hello")

spClass1 === spClass2 // false
println("/(spClass1)")

spClass1 !== spClass2 // true
println("/(spClass2)")


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

 

main.SampleClassmain.SampleClass

結(jié)構(gòu)體
Swift 提供了利用構(gòu)造作為結(jié)構(gòu)的靈活的構(gòu)建塊。 通過(guò)利用這些結(jié)構(gòu)的一次可以定義構(gòu)建體的方法和屬性。

這不同于 C 和 Objective C 編程:

結(jié)構(gòu)不用要求實(shí)現(xiàn)文件和接口。

結(jié)構(gòu)體使我們能夠創(chuàng)建一個(gè)文件并自動(dòng)擴(kuò)展其接口到其它塊。

在結(jié)構(gòu)體中的變量值被復(fù)制并傳遞在后續(xù)的代碼,通過(guò)返回的舊值的副本使得這些值不能被改變。

語(yǔ)法

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

Structures are defined with a 'Struct' Keyword.
struct nameStruct { 
   Definition 1
   Definition 2
    --- 
   Definition N
}

結(jié)構(gòu)體的定義
考慮例如,假設(shè)要訪問(wèn)包含三個(gè)科目記錄標(biāo)記的學(xué)生并找出三個(gè)科目的總和。在這里,markStruct用于初始化的結(jié)構(gòu)有三個(gè)標(biāo)記,數(shù)據(jù)類(lèi)型為 'Int'。
復(fù)制代碼代碼如下:

struct MarkStruct{
   var mark1: Int
   var mark2: Int
   var mark3: Int
}

訪問(wèn)結(jié)構(gòu)體及屬性
結(jié)構(gòu)的成員是由它的結(jié)構(gòu)名訪問(wèn)。 結(jié)構(gòu)體的實(shí)例中由 'let' 關(guān)鍵字進(jìn)行初始化。
復(fù)制代碼代碼如下:

struct studentMarks {
   var mark1 = 100
   var mark2 = 200
   var mark3 = 300
}
let marks = studentMarks()
println("Mark1 is /(marks.mark1)")
println("Mark2 is /(marks.mark2)")
println("Mark3 is /(marks.mark3)")

當(dāng)我們使用 playground 運(yùn)行上面的程序,得到以下結(jié)果:

 

Mark1 is 100Mark2 is 200Mark3 is 300

學(xué)生成績(jī)需要訪問(wèn)結(jié)構(gòu)名“studentMarks”。結(jié)構(gòu)成員被初始化為 mark1, mark2, mark3 的整數(shù)類(lèi)型值。然后,結(jié)構(gòu)體 studentMarks()傳遞給 'marks' 使用 'let' 關(guān)鍵字。 'marks' 將包含結(jié)構(gòu)成員的值。現(xiàn)在通過(guò) '.' 訪問(wèn)結(jié)構(gòu)的初始名稱(chēng)的值,并打印它。

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

struct MarksStruct {
   var mark: Int

 

   init(mark: Int) {
      self.mark = mark
   }
}
var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct // aStruct and bStruct are two structs with the same value!
bStruct.mark = 97
println(aStruct.mark) // 98
println(bStruct.mark) // 97


當(dāng)我們使用 playground 運(yùn)行上面的程序,得到以下結(jié)果:

 

9897

結(jié)構(gòu)體最佳使用方式
Swift 語(yǔ)言提供功能來(lái)定義的結(jié)構(gòu)體作為自定義數(shù)據(jù)類(lèi)型,用于構(gòu)建功能塊。 結(jié)構(gòu)體的實(shí)例的值傳遞給定義塊來(lái)進(jìn)一步的操作。

需要有結(jié)構(gòu):

封裝簡(jiǎn)單的數(shù)據(jù)值

使用“值”而不是“引用”復(fù)制封裝數(shù)據(jù)到它的相關(guān)聯(lián)屬性

結(jié)構(gòu)體為 “復(fù)制” 和 “引用”

在 swift 中結(jié)構(gòu)體是通過(guò)其成員的值,而不是它的引用。

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

struct markStruct{ 
   var mark1: Int
   var mark2: Int
   var mark3: Int

 

   init(mark1: Int, mark2: Int, mark3: Int){
      self.mark1 = mark1
      self.mark2 = mark2
      self.mark3 = mark3
   }
}

var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
println(marks.mark1)
println(marks.mark2)
println(marks.mark3)

 


當(dāng)我們使用 playground 運(yùn)行上面的程序,得到以下結(jié)果:

 

9896100

另外一個(gè)實(shí)例

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

struct markStruct{ 
   var mark1: Int
   var mark2: Int
   var mark3: Int

 

   init(mark1: Int, mark2: Int, mark3: Int){
      self.mark1 = mark1
      self.mark2 = mark2
      self.mark3 = mark3
   }
}

var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)

println(fail.mark1)
println(fail.mark2)
println(fail.mark3)


當(dāng)我們使用 playground 運(yùn)行上面的程序,得到以下結(jié)果:

 

344213

結(jié)構(gòu)體 “markStruct” 需要它的成員首先定義:mark1, mark2 和 mark3. 現(xiàn)在,成員類(lèi)的變量初始化容納整數(shù)值。之后結(jié)構(gòu)成員的副本使用 “self” 關(guān)鍵字創(chuàng)建。當(dāng)結(jié)構(gòu)成員的副本創(chuàng)建結(jié)構(gòu)體塊,其參數(shù)標(biāo)記傳遞給 'marks' 變量,它現(xiàn)在將保存學(xué)生的分?jǐn)?shù)。那么標(biāo)記打印為 98, 96, 100。 下一步對(duì)于相同的結(jié)構(gòu)成員的另一個(gè)實(shí)例命名為 'fail' 用于指向不同的標(biāo)記相同結(jié)構(gòu)體的成員。那么標(biāo)記現(xiàn)在打印為 34, 42, 13. 這清楚地說(shuō)明了結(jié)構(gòu)會(huì)有成員變量的副本,傳入成員到它們即將推出的功能塊。



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到swift教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
大陆极品少妇内射aaaaa| 国产精品入口麻豆免费| 精品亚洲一区二区三区在线观看| 国产精品美女久久久免费| 66m—66摸成人免费视频| 日韩xxx高潮hd| 国产夜色精品一区二区av| 91国自产精品中文字幕亚洲| 亚洲 欧美 自拍偷拍| 日韩精品免费在线视频观看| 亚洲一级黄色av| 免费一区二区在线观看| 亚洲啊啊啊啊啊| 亚洲女厕所小便bbb| 成人免费一区二区三区视频网站| 小泽玛利亚视频在线观看| 91亚洲人电影| 偷拍一区二区三区| 91在线免费观看网站| 国产欧美一区二区在线播放| 国产精品无码av无码| 国产精华7777777| 亚洲熟妇av日韩熟妇在线| 国产在线拍揄自揄拍无码视频| 精品毛片三在线观看| 国产免费a视频| 日日天天久久| 欧美色一级片| 久久青草欧美一区二区三区| 偷窥自拍欧美色图| 色偷偷av一区二区三区乱| 国产精久久一区二区三区| 亚洲美女视频网站| 视频一区二区三区在线看免费看| 少妇高潮一区二区三区69| 青青草成人免费视频| 天堂社区 天堂综合网 天堂资源最新版| 综合 欧美 亚洲日本| 久久精品免视看| 日韩精品电影一区二区| 欧美成ee人免费视频| 欧美性xxxx极品hd欧美| 精品久久久久久久免费人妻| 亚洲亚洲人成综合网络| 精品人妻无码一区二区色欲产成人| 日日嗨av一区二区三区四区| 国产偷窥女洗浴在线观看亚洲| 加勒比成人在线| 久久精品久久久| 中文高清一区| 理论电影国产精品| 青青草视频在线青草免费观看| 中文字幕9999| 国产精品视频一区二区三区四区五区| www久久com| 日韩电影免费观看高清完整| 手机在线播放av| 最近中文字幕mv第三季歌词| 18成人在线视频| 69精品无码成人久久久久久| 中国女人特级毛片| www.激情小说.com| 国产精品欧美一区二区| 黄色成人在线免费| 亚洲av综合色区无码一二三区| 精品日产一区2区三区黄免费| 伊人久久久久久久久久久久久久| 天美一区二区三区| 午夜黄色福利视频| 在线视频日韩| 亚洲天堂av网| 亚洲一区二区三区黄色| 日韩在线视频免费播放| 精品久久久久久亚洲精品| 国产精品日韩在线一区| 奇米综合一区二区三区精品视频| 精品国产乱码久久久久久久软件| 在线观看中文字幕码| 国产又大又黑又粗免费视频| 少妇av一区二区三区| 香蕉97视频观看在线观看| 91精品国产免费久久综合| 丰满的亚洲女人毛茸茸| 中文字幕在线观看亚洲| 亚洲午夜精品久久久久久app| 奇米综合一区二区三区精品视频| 国产精九九网站漫画| 久久精品亚洲94久久精品| 福利视频亚洲| 国产情侣免费视频| 日韩一区二区中文| 亚洲人成网站在线观看播放| 97免费高清电视剧观看| 国产麻豆乱码精品一区二区三区| 老司机深夜福利在线观看| 国产精品第72页| a'aaa级片在线观看| 国内精品写真在线观看| 中文字幕精品一区二区精品| 穿情趣内衣被c到高潮视频| 久久国产精品久久| 欧美国产在线看| 欧美日韩精品一区二区视频| 中文字幕欧美日韩一区二区三区| 欧美精品一本久久男人的天堂| 久久一级黄色片| 久久久免费视频网站| 国产欧美日韩精品一区二区免费| 91精品美女在线| 国产精品精品一区二区三区午夜版| 欧美精品自拍偷拍动漫精品| 欧美日韩国产一区精品一区| 免费成人深夜夜行p站| 在线激情网站| 国产视频一视频二| 久久亚洲资源| 18禁男女爽爽爽午夜网站免费| 亚洲精彩视频| 国产精品国产三级国产专播品爱网| jlzzjlzz亚洲日本少妇| 久草视频免费看| av首页在线观看| 久久一级电影| 午夜两性免费视频| 精品小视频在线| 免费yellow网站| 玖玖玖免费嫩草在线影院一区| 色wwwwww| 香蕉乱码成人久久天堂爱免费| 日本久久久久久久| 国产精品av久久久久久麻豆网| 高清av免费一区中文字幕| 在线成人中文字幕| 这里只有精品999| 日韩一级视频在线观看| 69ww免费视频播放器| 国产欧美一区二区三区视频在线观看| 一个人看免费www视频有多爽| 99久久久久成人国产免费| 欧美精品videos| 欧美激情视频一区二区三区免费| 日韩成人一区二区| 91国产丝袜在线播放| 国产精品妹子av| 日韩欧美一二三| 激情成人在线观看| 色偷偷中文字幕| 欧美区高清在线| 婷婷激情一区| 成人a级免费视频| 欧美多人爱爱视频网站| 桃色av一区二区| 天堂在线观看一卡二卡三卡四卡| 久久精品视频16| 国产精品玖玖玖| 亚洲狠狠婷婷综合久久久久图片| 国产午夜久久久| 亚欧日韩另类中文欧美| 不卡中文字幕在线| 亚洲女同在线| 久久精品在线观看视频| 亚洲免费激情| 精品无码人妻一区二区三区品| 国产亚洲欧洲一区高清在线观看| 激情欧美日韩一区二区| 中文视频一区视频二区视频三区| 欧美日韩伊人| 韩国自拍一区| 国产亚洲成av人片在线观看| 欧美一区二区精品| 久久精品香蕉视频| 一区二区三区四区蜜桃| 涩涩视频网站在线观看| 成人精品一区二区三区电影| 99国产精品久久久久久| 国产一区二区欧美日韩| 欧美日韩国内自拍| 巨大荫蒂视频欧美另类大| 国产91在线免费| 精品国产欧美日韩不卡在线观看| 国产精品久久久久av| 人妻熟女aⅴ一区二区三区汇编| 国产精品麻豆入口| 亚洲日本va午夜在线电影| 国产成人av一区二区| 最新国产成人av网站网址麻豆| 乱熟女高潮一区二区在线| 欧美理论片在线播放| 色狠狠综合天天综合综合| 麻豆视频免费在线观看| 永久免费看片在线播放| 日韩视频在线免费播放| 国内精品**久久毛片app| 欧美国产视频日韩| 91精品综合久久久久久久久久久| 性xxxfreexxxx性欧美| 91嫩草国产在线观看| 亚洲一区二区在线播放相泽| 亚洲欧美久久234| 国产精品黄视频| 午夜激情一区二区三区| 成年人视频在线观看免费| 午夜在线a亚洲v天堂网2018| 男女啪啪a级毛片| 91九色在线观看| 91美女片黄在线| 日韩在线免费视频| 亚洲欧美精品伊人久久| 99综合电影在线视频| 精品久久久久久久免费人妻| 中文字幕av一区二区三区谷原希美| 亚洲免费成人在线视频| h视频免费观看| 日韩精品123区| 亚洲成人av综合| 欧美日韩国产首页在线观看| 免费精品视频在线| 精品理论电影| 国产又粗又长又爽视频| 色婷婷av777| 久久se精品一区精品二区| 日韩在线观看视频一区二区三区| 国产专区第一页| 国产91亚洲精品久久久| 少妇高清精品毛片在线视频| 一区二区三区鲁丝不卡| 中文久久久久久| 91在线porny国产在线看| 九九热国产在线| 欧美特黄一级| 亚洲在线视频观看| 欧美jizz18hd性欧美| **欧美日韩在线| 深爱五月激情五月| 欧美一级特黄高清视频| 九九热免费在线观看| 7777狠狠狠琪琪电影| 91精品在线播放| а√天堂官网中文在线| 国产一区二区三区在线观看免费| 国产一区在线精品| 第一页在线视频| 一区二区三区四区日本视频| 漂亮人妻被中出中文字幕| 牛牛精品在线视频| 日韩高清影视在线观看| 老司机精品影院| 国产日韩欧美日韩大片| 日日夜夜精品视频免费观看| 日韩五码电影| 国产成人无码www免费视频播放| 伊人精品视频在线观看| 日本一区二区三级电影在线观看| 91精品国产91久久久久青草| 五月天一区二区| 国产三级视频在线看| 亚洲av片在线观看| 女同视频在线观看| 亚洲欧美日韩免费| 日韩大片欧美大片| 日韩欧乱色一区二区三区在线| 久久久国产一区二区三区四区小说| 久久精品人人做人人爽电影| 久久久www成人免费精品张筱雨| 超碰97人人做人人爱少妇| 国产精品videossex久久发布| 欧美日韩高清丝袜| 成人亚洲欧美一区二区三区| 国产精品欧美韩国日本久久| 日韩三级一区二区三区| 精品黑人一区二区三区久久| 日韩专区视频网站| 久久悠悠精品综合网| 最新国产乱人伦偷精品免费网站| 欧美日韩亚洲一区二区三区在线| 国产福利久久久| 亚洲欧美日韩在线| 瑟瑟视频在线观看| 国产精品老女人视频| 亚洲人人夜夜澡人人爽| 私密视频在线观看| 浮妇高潮喷白浆视频| 三年中国中文在线观看免费播放| 蜜桃91丨九色丨蝌蚪91桃色| 欧美性生活久久| 亚洲av成人无码网天堂| 特黄视频在线观看| 国产激情综合五月久久| 午夜精品久久久久久久99热浪潮| 中文在线аv在线| 日韩免费看片| 影音先锋黄色资源| 91色精品视频在线| 一级在线免费观看| 中文字幕欧美人妻精品一区| 97在线资源| 中文字幕理论片| 精品人妻一区二区三区四区不卡| 免费一二一二在线视频| 日韩专区第一页| 中文字幕av日韩| 女同一区二区| 午夜亚洲福利在线老司机| 久久久精品视频国产| 久久久久北条麻妃免费看| 国产欧美日韩综合精品| 国产极品精品在线观看| 在线视频一二三区| 国产精品综合久久久| 91久久国产自产拍夜夜嗨| 紧缚奴在线一区二区三区| 日韩激情片免费| 91在线超碰| 国产高清自产拍av在线| 久久av在线播放| 精品调教chinesegay| 国产日韩欧美一区二区东京热| 欧美劲爆第一页| 国产男小鲜肉同志免费| 国产精品午夜久久久久久| 国产毛片一区二区三区va在线| 亚洲一区二区久久久久久| 中文在线资源观看网站视频免费不卡| 亚洲视频在线观看| 国产精品久久久久久久久晋中| 春暖花开亚洲一区二区三区| 香港三级日本三级a视频| 日韩精品在线影院|