Swift 初始化含代碼

Swift 初始化

Swift的類、結(jié)構(gòu)體和枚舉都用于在Swift4中聲明后準(zhǔn)備類的實例。愛掏網(wǎng) - it200.com初始值用于初始化存儲屬性,這些值被初始化用于進一步處理。愛掏網(wǎng) - it200.com’init()’方法用于創(chuàng)建初始化函數(shù)。愛掏網(wǎng) - it200.comSwift 4的初始化器與Objective-C不同,它不返回任何值。愛掏網(wǎng) - it200.com它的功能是在處理之前檢查新創(chuàng)建實例的初始化。愛掏網(wǎng) - it200.comSwift 4還提供了“析構(gòu)”過程,用于在實例被釋放后執(zhí)行內(nèi)存管理操作。愛掏網(wǎng) - it200.com

在處理實例之前,存儲屬性必須為其類和結(jié)構(gòu)體初始化實例。愛掏網(wǎng) - it200.com存儲屬性使用初始化器來分配和初始化值,而無需調(diào)用屬性觀察器。愛掏網(wǎng) - it200.com

  • 創(chuàng)建初始值。愛掏網(wǎng) - it200.com
  • 在屬性定義中為屬性分配默認(rèn)值。愛掏網(wǎng) - it200.com
  • 為特定數(shù)據(jù)類型初始化實例時,使用’init()’。愛掏網(wǎng) - it200.com在init()函數(shù)中不傳遞任何參數(shù)。愛掏網(wǎng) - it200.com

語法

init() {
   //New Instance initialization goes here
}

示例

struct cube {
   var length: Double 
   var breadth: Double
   var height: Double
   init() {
      length = 6
      breadth = 12
      height = 4
   }
}
var volume = cube()
print("volume of cube is \(volume.length*volume.breadth*volume.height)")

輸出:

volume of cube is 288.0 

這里,

  • 結(jié)構(gòu)體“ cube ”以“Double”數(shù)據(jù)類型初始化,具有長度、寬度和高度成員。愛掏網(wǎng) - it200.com
  • Init()方法用于為新創(chuàng)建的成員初始化值。愛掏網(wǎng) - it200.com
  • 通過調(diào)用cube函數(shù)來計算和返回cube的體積。愛掏網(wǎng) - it200.com

設(shè)置默認(rèn)的屬性值

在Swift4編程語言中,在聲明類或結(jié)構(gòu)體成員時,init()函數(shù)用于默認(rèn)地初始化屬性值。愛掏網(wǎng) - it200.com當(dāng)屬性在整個程序中都取相同的值時,我們可以在聲明部分單獨聲明它,而不是在init()中初始化它。愛掏網(wǎng) - it200.com通過默認(rèn)設(shè)置屬性值,使用戶在為類或結(jié)構(gòu)體定義繼承時起作用。愛掏網(wǎng) - it200.com

示例

struct cube {
   var length = 6
   var breadth = 12
   var height = 4
}

var volume = cube()
print("volume of the cube is \(volume.length*volume.breadth*volume.height)")

輸出:

volume of cube is 288

參數(shù)初始化

在Swift4語言中,用戶可以使用init()作為初始化器的一部分來初始化參數(shù)。愛掏網(wǎng) - it200.com

示例

struct Rectangle {
   var length: Double
   var breadth: Double
   var area: Double
   init(fromLength length: Double, fromBreadth breadth: Double) {
      self.length = length
      self.breadth = breadth
      area = length * breadth
   }
   init(fromL l: Double, fromB b: Double) {
      self.length = l
      self.breadth = b
      area = l * b
   }
}
let a1 = Rectangle(fromLength: 6, fromBreadth: 12)
print("area is: \(a1.area)")

let a2 = Rectangle(fromL: 36, fromB: 12)
print("area is: \(a2.area)")

輸出:

area is: 72.0
area is: 432.0

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

返回頂部

主站蜘蛛池模板: 国产亚洲av综合人人澡精品| 国产精品入口麻豆高清在线| 亚洲一级毛片中文字幕| 黄网在线免费看| 彩虹男gary网站| 亚洲中文字幕在线第六区| 色婷婷综合久久久久中文字幕| 在车里被撞了八次高c| 成人欧美一区二区三区在线观看| 720lu国产刺激在线观看| 北条麻妃一本到高清在线观看| 国产69精品久久久久9999| 精品爆乳一区二区三区无码av| 黑人巨茎大战欧美白妇| 55夜色66夜色国产精品视频| 99国产超薄丝袜足j在线观看| 三级小说第一页| 久久国产一区二区三区| 小小的日本电影在线观看免费版 | 日韩经典欧美一区二区三区| 小雪把双腿打开给老杨看免费阅读| 囯产精品一品二区三区| www四虎影院| 欧美三级在线观看播放| 国产va免费精品高清在线| 91w乳液78w78wyw5| 成人观看天堂在线影片| 亚洲午夜精品久久久久久人妖| 美女内射毛片在线看3D | www夜插内射视频网站| 本子库全彩无遮挡无翼乌触手| 再深点灬舒服灬太大了快点h视频| 五月天综合视频| 日韩黄色一级大片| 人人妻人人爽人人澡人人| 都流了这么多还嘴硬| 国产精品综合一区二区三区 | 亚洲欧美另类精品久久久| 美女隐私尿口视频网站| 天天久久影视色香综合网| 久久午夜国产片|