Swift 方法含代碼

Swift 方法

在Swift4中,方法是與特定類型相關聯的函數。愛掏網 - it200.com在Objective-C中,類用于定義方法,而在Swift4中,我們有用于類、結構和枚舉的方法。愛掏網 - it200.com

實例方法是與類、結構或枚舉實例相關聯的方法。愛掏網 - it200.com實例方法寫在該類型的主體內部。愛掏網 - it200.com

實例方法提供與實例的需求相關的功能,并且可以訪問和修改實例屬性。愛掏網 - it200.com實例方法寫在大括號 {} 內部。愛掏網 - it200.com它可以隱式訪問類型實例的方法和屬性。愛掏網 - it200.com當調用類型的特定實例時,它將獲得訪問該特定實例的權限。愛掏網 - it200.com

語法

func funcname(Parameters) -> returntype {
   Statement1
   Statement2
   ---
   Statement N
   return parameters
}

示例

class calculate {
   let a: Int
   let b: Int
   let res: Int
   init(a: Int, b: Int) {
      self.a = a
      self.b = b
      res = a + b
   }
   func tot(c: Int) -> Int {
      return res - c
   }
   func result() {
      print("Result is: \(tot(c: 20))")
      print("Result is: \(tot(c: 50))")
   }
}
let pri = calculate(a: 200, b: 300)
pri.result()

輸出:

Result is: 480
Result is: 450

在上面的示例中,class calculate 定義了兩個實例方法:

  • init() 用于將兩個數字 a 和 b 相加并將結果存儲在變量 ‘res’ 中。愛掏網 - it200.com
  • tot() 用于將傳入的參數 ‘c’ 減去 ‘res’ 的值。愛掏網 - it200.com

局部和全局參數名

在 Swift4 中,函數可以描述其變量的局部和全局聲明。愛掏網 - it200.com對于函數和方法,局部和全局參數名聲明的特征是不同的。愛掏網 - it200.com在 Swift 4 中,第一個參數通過名為 ‘with’、’for’ 和 ‘by’ 的介詞來引用,以方便訪問命名約定。愛掏網 - it200.com

在 Swift 4 中,您可以將第一個參數名稱聲明為局部參數名,將其余參數名稱聲明為全局參數名。愛掏網 - it200.com

讓我們看一個示例。愛掏網 - it200.com這里將 ‘no1’ 聲明為局部參數名,并通過整個程序使用 ‘no2’ 進行全局聲明和訪問。愛掏網 - it200.com

示例

class divide {
   var count: Int = 0
   func incrementBy(no1: Int, no2: Int) {
      count = no1 / no2
      print(count)
   }
}
let counter = divide()
counter.incrementBy(no1: 100, no2: 3)
counter.incrementBy(no1: 200, no2: 5)
counter.incrementBy(no1: 400, no2: 7)

輸出結果:

33
40
57

方法中的Self屬性

方法對于其定義的所有類型實例都有一個隱含的屬性稱為 ‘self’。愛掏網 - it200.comSelf屬性或Self方法用于訪問實例本身。愛掏網 - it200.com

示例

class calculate {
   let a: Int
   let b: Int
   let res: Int
   init(a: Int, b: Int) {
      self.a = a
      self.b = b
      res = a + b
      print("Result Inside Self Block: \(res)")
   }
   func tot(c: Int) -> Int {
      return res - c
   }
   func result() {
      print("Result is: \(tot(c: 20))")
      print("Result is: \(tot(c: 50))")
   }
}
let pri = calculate(a: 100, b: 200)
let sum = calculate(a: 300, b: 400)
pri.result()
sum.result()

輸出:

Result Inside Self Block: 300
Result Inside Self Block: 700
Result is: 280
Result is: 250
Result is: 680
Result is: 650

從實例方法修改值類型

在Swift 4中,結構體和枚舉屬于值類型,不能通過其實例方法進行修改,但是我們可以通過’mutating’行為來修改值類型。愛掏網 - it200.com使用mutate會在實例方法中進行任何更改,并在方法執行后返回到原始形式。愛掏網 - it200.com此外,通過’self’屬性,為其隱式函數創建新的實例,并在執行后替換現有方法。愛掏網 - it200.com

示例

struct area {
   var length = 1
   var breadth = 1
   func area() -> Int {
      return length * breadth
   }
   mutating func scaleBy(res: Int) {
      length *= res
      breadth *= res
      print(length)
      print(breadth)
   }
}
var val = area(length: 3, breadth: 5)
val.scaleBy(res: 2)
val.scaleBy(res: 20)
val.scaleBy(res: 200)

輸出:

6
10
120
200
24000
40000

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

返回頂部

主站蜘蛛池模板: 国产悠悠视频在线播放| 免费大片av手机看片| 亚洲另类欧美日韩| 999福利视频| 波多野结衣一区二区免费视频| 情人伊人久久综合亚洲| 又大又湿又紧又大爽a视频| 中文字幕在线视频网站| 美女吸乳羞羞漫画| 久久久久国色av免费观看| 麻豆国内精品欧美在线| 日韩在线观看中文字幕| 国产在线98福利播放视频免费| 亚州人成网在线播放| 国产成人在线网址| 日本肉体裸交xxxxbbbb | 亚洲乳大丰满中文字幕| 老司机亚洲精品| 欧美三级不卡在线观看视频| 国产特黄特色a级在线视| 乱爱性全过程免费视频| 顶级欧美色妇xxxxx| 日日摸日日碰夜夜爽亚洲| 四虎www成人影院免费观看| 一道本在线免费视频| 男人天堂视频网| 国产色视频免费| 亚洲av无码日韩av无码网站冲| 麻豆国产高清在线播放| 无套内射视频囯产| 免费av一区二区三区| 69无人区卡一卡二卡| 最近中文字幕mv免费视频| 国产亚洲Av综合人人澡精品| 中国一级淫片aaa毛片毛片| 真实调教奇优影院在线观看| 国产香蕉尹人综合在线观看| 亚洲AV日韩AV永久无码下载| 色婷婷丁香六月| 女人18毛片特级一级免费视频| 亚洲欧美日韩在线一区二区三区|