亚洲国产爱久久全部精品_日韩有码在线播放_国产欧美在线观看_中文字幕不卡在线观看

Swift 屬性含代碼

Swift 屬性

我們可以定義屬性來將值與類、結構和枚舉關聯起來。愛掏網 - it200.com在Swift中,我們可以定義兩種類型的屬性,即存儲屬性和計算屬性。愛掏網 - it200.com存儲屬性將變量和常量值存儲為類屬性。愛掏網 - it200.com而計算屬性根據特定值計算值。愛掏網 - it200.com我們可以在類、結構和枚舉中定義計算屬性;但是,存儲屬性只能在類和結構中定義。愛掏網 - it200.com

特定類型的實例,包括結構、類和枚舉,與類型中定義的所有屬性關聯。愛掏網 - it200.com但是,屬性也可以與類型本身關聯,而不是實例。愛掏網 - it200.com這種屬性被稱為類型屬性。愛掏網 - it200.com

在本教程的這一部分,我們將討論各種類型的Swift屬性,如存儲屬性和計算屬性。愛掏網 - it200.com

存儲屬性

簡單地說,存儲屬性是作為特定類或結構實例的一部分定義的常量或變量。愛掏網 - it200.com存儲屬性可以是常量(使用let關鍵字定義)或變量(使用var關鍵字定義)。愛掏網 - it200.com我們可以在聲明存儲屬性時為其提供默認值。愛掏網 - it200.com然而,在初始化類或結構時,我們可以修改存儲屬性的默認值。愛掏網 - it200.com

讓我們來考慮下面的示例,它定義了一個名為Person的類。愛掏網 - it200.com它包含變量存儲屬性name和age。愛掏網 - it200.com每個人都有一個默認的姓名和年齡,可以在初始化時更改。愛掏網 - it200.com

class Person{
    var name:String = "Anonymous"
    var age:Int = 20
    init() {

    }
    init(name:String, age:Int) {
        self.name = name
        self.age = age
    }
}

現在,如果我們創建一個Person類的實例并將其標記為常量,它不會影響我們存儲的變量屬性,因為我們仍然可以改變它們的值,如下所示。愛掏網 - it200.com

var person = Person()
person.name = "John"
person.age = 23
debugPrint(person.name + " " + person.age.description)

這將在控制臺上打印以下輸出。愛掏網 - it200.com

"John 23"

然而,對于結構體類型來說情況并非如此,因為結構體包含值類型。愛掏網 - it200.com如果我們將一個結構體標記為常量,盡管屬性是可變的,但我們無法更改它的所有存儲屬性。愛掏網 - it200.com考慮以下示例。愛掏網 - it200.com

struct Person{
    var name:String = "Anonymous"
    var age:Int = 20
}


let person = Person()
person.name = "John" // will give compiler error as "Cannot assign to property: 'person' is a 'let' constant"
person.age = 23
debugPrint(person.name + " " + person.age.description)

惰性存儲屬性

惰性存儲屬性在系統中直到第一次使用它之前不占用內存。愛掏網 - it200.com換句話說,惰性存儲屬性的值直到第一次訪問它之前不會被計算出來。愛掏網 - it200.com我們可以在Swift中使用”lazy”關鍵字將一個屬性定義為惰性。愛掏網 - it200.com然而,我們不能將惰性存儲屬性定義為常量,因為它的值可能在聲明時無法檢索到。愛掏網 - it200.com

惰性屬性在以下情況下非常有用:屬性的值取決于外部因素,并且需要在這些值知道之后計算。愛掏網 - it200.com如果屬性在初始化時需要進行復雜的設置,并且在第一次訪問值之前不需要使用,我們也可以使用惰性屬性。愛掏網 - it200.com

考慮以下示例,其中定義了類Employee和Department之間的關系。愛掏網 - it200.com在這里,類Department包含一個類型為Employee的惰性存儲屬性,表示當與Employee相關聯時將創建Employee屬性。愛掏網 - it200.com

import Foundation

class Employee{
    var name:String
    var id:Int
    var salary:Double
    var department:Department?
    init(name:String,id:Int,salary:Double) {
        self.name = name
        self.id = id
        self.salary = salary
    }
}


class Department{
    var name:String = "IT"
    lazy var employees = Array()
}


var dep = Department()
dep.name = "CS"


var emp = Employee(name: "John", id: 102, salary: 25000.0)
emp.department = dep


dep.employees.append(emp) //the employee property will be created now

計算屬性

我們可以將計算屬性定義為類、結構體和枚舉類型的實例的一部分。愛掏網 - it200.com與存儲屬性不同,計算屬性不存儲值。愛掏網 - it200.com相反,它們提供了getter和可選的setter來間接地檢索和設置其他屬性和值。愛掏網 - it200.com

示例1

考慮下面的示例,定義了一個名為Person的類。愛掏網 - it200.comPerson有一個姓名、年齡和給世界的特殊信息。愛掏網 - it200.com姓名和年齡是存儲屬性,而信息是一個計算屬性,其值基于Person的姓名和年齡確定。愛掏網 - it200.com

class Person{
    var name:String
    var age:Int
    var festival:String
    var message: String{
        return "Hi I am \(name), and I am \(age) years old. I wish you all a very Happy \(festival)"
    }

    init(name:String,age:Int,festival:String) {
        self.name = name
        self.age = age
        self.festival = festival
    }
}

Person 類中包含了諸如名字、年齡和希望的節日之類的存儲屬性。愛掏網 - it200.com然而,消息是通過計算得出的。愛掏網 - it200.com因此,它是一個計算屬性,其值基于一個人的名字、年齡和希望的節日來確定將要傳遞的消息。愛掏網 - it200.com

var person = Person(name: "John", age: 23, festival: "Diwali")
debugPrint(person.message)

如果我們打印這個人的消息,下面的消息將被打印到控制臺。愛掏網 - it200.com

"Hi I am John, and I am 23 years old. I wish you all a very Happy Diwali"

示例2:

考慮以下示例,其中Circle類包含兩個屬性。愛掏網 - it200.com radius是存儲屬性,而area則是根據圓的半徑計算出來的。愛掏網 - it200.com

class Circle{
    var radius:Double
    var area:Double{
        get{
            return 3.14 * radius * radius
        }
    }
    init(radius:Double) {
        self.radius = radius
    }
}

var circle = Circle(radius: 100)
debugPrint("Area of circle is \(circle.area)")

它在控制臺上打印以下內容。愛掏網 - it200.com

"Area of circle is 31400.0"

示例 3:

讓我們擴展示例2中定義的Circle類,并計算給定圓的面積的半徑。愛掏網 - it200.com

class Circle{
    var radius:Double
    var area:Double{
        get{
            return 3.14 * radius * radius
        }
        set(newValue){
            radius = sqrt(newValue/3.14)
        }
    }
    init(radius:Double) {
        self.radius = radius
    }
}

如果我們為圓的面積分配某個值,它將根據面積計算半徑,并將其分配給存儲屬性radius。愛掏網 - it200.com

var circle = Circle(radius: 100)
circle.area = 31400
debugPrint("Radius of Circle is \(circle.radius)")

根據修改后的面積,將打印圓的新半徑,如下所示。愛掏網 - it200.com

"Radius of Circle is 316.2287731100305"

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

亚洲国产爱久久全部精品_日韩有码在线播放_国产欧美在线观看_中文字幕不卡在线观看

    
    

    亚洲天堂成人在线观看| 国产日本欧美视频| 亚洲欧美久久| 国产伊人精品| 欧美肉体xxxx裸体137大胆| 久久夜色精品| 久久激情一区| 午夜精品久久久久久99热软件| 一区二区三区在线看| 国产精品激情电影| 欧美日韩久久| 欧美日本免费| 欧美日韩国内| 欧美日韩999| 欧美国产精品va在线观看| 久久人人爽爽爽人久久久| 性伦欧美刺激片在线观看| 亚洲一区二区三区视频| 一本色道久久综合狠狠躁篇怎么玩 | 香蕉久久一区二区不卡无毒影院| 亚洲精品小视频在线观看| 亚洲国产精品成人久久综合一区| 黑人巨大精品欧美黑白配亚洲| 国产精品日韩欧美一区二区| 国产精品第一区| 国产精品久久7| 国产精品美女久久久久av超清 | 欧美日韩亚洲免费| 欧美日韩日本国产亚洲在线 | 91久久精品美女| 亚洲国产成人porn| 亚洲国产高清在线观看视频| 亚洲国产精品传媒在线观看| 91久久国产综合久久| 亚洲精选在线观看| 夜夜爽99久久国产综合精品女不卡| 99成人免费视频| 亚洲一区三区视频在线观看| 亚洲欧美日本国产专区一区| 久久精品国产亚洲a| 久久久精品一品道一区| 欧美成人精品h版在线观看| 欧美激情一区二区三区不卡| 欧美日韩一区二区三区在线视频| 欧美性大战久久久久久久| 国产乱码精品一区二区三区忘忧草 | 欧美激情第10页| 国产精品hd| 好吊色欧美一区二区三区视频| 在线观看欧美亚洲| 一区二区欧美精品| 久久aⅴ国产紧身牛仔裤| 老司机免费视频一区二区| 欧美精品在线观看播放| 国产精品视频xxx| 精品盗摄一区二区三区| 99精品国产在热久久婷婷| 欧美一区三区二区在线观看| 欧美成黄导航| 国产精品一区二区黑丝| 在线免费观看日本一区| 亚洲一区二区在线| 欧美 日韩 国产一区二区在线视频| 国产精品激情| 亚洲人成免费| 久久精品中文| 国产精品一区二区久久精品| 亚洲精品视频免费| 久久久久久久高潮| 国产精品国产a级| 亚洲国产一区在线观看| 久久gogo国模啪啪人体图| 欧美日韩成人在线观看| 亚洲丁香婷深爱综合| 午夜精品在线观看| 欧美手机在线视频| 亚洲日本中文| 免费亚洲电影| 一区二区在线观看视频| 亚洲欧美电影院| 欧美日本不卡| 亚洲精品乱码| 美女91精品| 在线观看一区| 老司机久久99久久精品播放免费| 国产啪精品视频| 欧美亚洲一区二区在线| 国产精品久久久久久久第一福利| 亚洲精品视频在线观看网站| 久热精品视频在线免费观看 | 久久久久久69| 狠狠久久亚洲欧美| 久久久国产精品一区| 国产欧美日韩三区| 欧美在线视频观看免费网站| 国产欧美日韩伦理| 久久精品人人做人人爽电影蜜月| 国产精品一区二区男女羞羞无遮挡| 亚洲网站在线播放| 国产精品免费看片| 欧美一区二区三区日韩| 国产日韩精品一区二区三区| 午夜在线视频一区二区区别| 国产亚洲aⅴaaaaaa毛片| 欧美一区影院| 伊人久久大香线蕉综合热线 | 欧美华人在线视频| 亚洲卡通欧美制服中文| 欧美三区美女| 午夜伦理片一区| 国产亚洲成人一区| 免费看的黄色欧美网站| 亚洲精品中文字幕有码专区| 欧美午夜精品久久久久久人妖| 亚洲一级网站| 激情小说亚洲一区| 免费在线观看精品| 亚洲一区欧美二区| 狠狠爱成人网| 欧美日韩亚洲综合在线| 欧美一区2区视频在线观看 | 老司机免费视频一区二区三区 | 一区二区高清在线观看| 国产精品无人区| 久久精品网址| 一区二区三区福利| 激情久久综合| 欧美性做爰毛片| 免费不卡亚洲欧美| 亚洲欧美文学| 亚洲人午夜精品| 国内精品久久久久影院优| 欧美激情一区二区久久久| 亚洲综合激情| 亚洲精品在线三区| 国产在线乱码一区二区三区| 欧美日韩国产999| 久久免费99精品久久久久久| 亚洲一区二区三区中文字幕在线| 伊人久久亚洲热| 国产日本欧美一区二区三区在线 | 亚洲精品中文在线| 韩国精品在线观看| 国产精品国产一区二区| 欧美国产一区二区| 久久精品一区二区三区四区| 亚洲图片激情小说| 亚洲精品一区二| 亚洲国产一区二区精品专区| 国产日韩欧美一区二区三区在线观看| 欧美日韩成人在线播放| 噜噜噜躁狠狠躁狠狠精品视频 | 久久精品一本| 久久www免费人成看片高清| 一区二区精品国产| 亚洲免费激情| 99精品久久久| 亚洲无线一线二线三线区别av| 亚洲国产精品一区二区www| 国内成人精品一区| 国产区二精品视| 国产又爽又黄的激情精品视频| 国产欧美日本一区视频| 国产精品久久久久毛片软件| 国产精品h在线观看| 欧美日韩天堂| 国产精品国产三级国产普通话99| 欧美日本不卡高清| 欧美三级电影网| 国产精品视频第一区| 国产女精品视频网站免费| 国产麻豆91精品| 国产亚洲欧美中文| 影音先锋中文字幕一区| 在线播放中文一区| 亚洲精品美女久久久久| 亚洲美女福利视频网站| 亚洲午夜久久久久久久久电影网| 一本久久a久久精品亚洲| 中文日韩在线| 亚洲欧美国产制服动漫| 久久高清一区| 欧美aaa级| 国产精品v欧美精品∨日韩| 国产欧美日韩亚洲精品| 红桃视频一区| 99热免费精品在线观看| 亚洲一区二区免费视频| 欧美中文字幕在线观看| 久久综合影视| 欧美三日本三级三级在线播放| 国产精品视频第一区| 亚洲成人在线视频播放| 亚洲精品中文字幕在线| 性欧美大战久久久久久久久| 嫩草国产精品入口| 欧美视频一区在线| 怡红院精品视频在线观看极品| 日韩视频―中文字幕| 欧美伊人久久|