Swift基礎知識:20.Swift方法

在 Swift 中,方法是與特定類型相關聯的函數。方法可以用于實例類型(實例方法)或類型本身(類型方法)。方法允許類型的實例執行特定的任務,也可以修改實例本身或實例的屬性。

實例方法(Instance Methods)

實例方法是屬于特定類、結構體或枚舉實例的函數。它們提供對實例屬性和實例方法的訪問權限,并允許實例執行特定的任務。實例方法在定義時使用 func 關鍵字,并且可以訪問實例的屬性和其他方法。

示例:

class Counter {var count = 0func increment() {count += 1}func reset() {count = 0}
}
let counter = Counter()
counter.increment()
print(counter.count)  // 輸出:1
counter.reset()
print(counter.count)  // 輸出:0

類型方法(Type Methods)

類型方法是與類型本身相關聯的方法,而不是與類型的實例相關聯。類型方法在定義時使用 static 關鍵字(對于類)或 class 關鍵字(對于子類的重寫方法)。類型方法可以訪問類型本身的屬性和方法,但不能訪問實例的屬性和方法。

示例:

struct Math {static func abs(_ number: Int) -> Int {return number >= 0 ? number : -number}
}
let absoluteValue = Math.abs(-10)
print(absoluteValue)  // 輸出:10

在實例方法中修改值類型

在 Swift 中,結構體和枚舉是值類型,因此默認情況下,實例方法不能修改實例的屬性。但是,如果需要在特定方法中修改值類型的屬性,可以在方法前面加上 mutating 關鍵字。

示例:

struct Point {var x = 0.0, y = 0.0mutating func moveBy(x deltaX: Double, y deltaY: Double) {x += deltaXy += deltaY}
}
var point = Point(x: 1.0, y: 1.0)
point.moveBy(x: 2.0, y: 3.0)
print(point)  // 輸出:Point(x: 3.0, y: 4.0)

Swift 中的方法是面向對象編程的重要組成部分,它們允許類型的實例執行特定的任務,并且可以修改實例本身或實例的屬性。實例方法用于操作實例的狀態和行為,而類型方法則用于對類型本身執行任務。在 Swift 中,方法是一種強大的工具,用于實現面向對象編程的特性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697370.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697370.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697370.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【力扣hot100】刷題筆記Day10

前言 一鼓作氣把鏈表給刷完!!中等題困難題沖沖沖啊啊啊! 25. K 個一組翻轉鏈表 - 力扣(LeetCode) 模擬 class Solution:def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:# 翻轉…

題記(46)--兩個多項式的和

目錄 一、題目內容 二、輸入描述 三、輸出描述 四、輸入輸出示例 五、完整C語言代碼 一、題目內容 輸入兩個多項式,計算它們的和。 每個多項式有若干對整數表示,每組整數中,第一個整數表示系數(非0),第…

#LLM入門|Prompt#1.7_文本拓展_Expanding

輸入簡短文本,生成更加豐富的長文。 “溫度”(temperature):控制文本生成的多樣性。 一、定制客戶郵件 根據客戶的評價和其中的情感傾向,使用大語言模型針對性地生成回復郵件。將大大提升客戶滿意度。 # 我們可以在…

云原生 - K8s命令合集

我是南城余!阿里云開發者平臺專家博士證書獲得者! 歡迎關注我的博客!一同成長! 一名從事運維開發的worker,記錄分享學習。 專注于AI,運維開發,windows Linux 系統領域的分享! 知…

兩種動態代理(可以看到代理類的樣子,方便理解)

這里寫目錄標題 jdk動態代理例子CGlib動態代理例子手寫spring中的事務部分自定義注解版aop實現方式 Spring的兩大重點,IOC和AOP,今天我們就來學AOP,眾所周知AOP的底層是動態代理,讓我們看一下這兩種動態代理的區別。 例子&#x…

tvm交叉編譯android可執行參考資料整理

主要參考這個: TVM部署神經網絡模型到android端_tvm android-CSDN博客 其他相關鏈接: TVM部署神經網絡模型到android端 - 代碼先鋒網 Ubuntu交叉編譯 arm板子上的TVM_tvm arm-CSDN博客 TVM部署神經網絡模型到android端 - 代碼先鋒網 tvm部署c神經網…

【Spring連載】使用Spring Data訪問 MongoDB(五)----生命周期事件

【Spring連載】使用Spring Data訪問 MongoDB(五)----生命周期事件Lifecycle Events 一、實體回調Entity Callbacks1.1 實現實體回調1.2 注冊實體回調 二、特定存儲的實體回調 一、實體回調Entity Callbacks 1.1 實現實體回調 1.2 注冊實體回調 二、特…

【結合OpenAI官方文檔】解決Chatgpt的API接口請求速率限制

OpenAI API接口請求速率限制 速率限制以五種方式衡量:RPM(每分鐘請求數)、RPD(每天請求數)、TPM(每分鐘令牌數)、TPD(每天令牌數)和IPM(每分鐘圖像數&#x…

BUUCTF第二十四、二十五題解題思路

目錄 第二十四題CrackRTF 第二十五題[2019紅帽杯]easyRE1 第二十四題CrackRTF 查殼 無殼,32位,用32位IDA打開,打開后的main函數很短,可以找到一句“jmz _main_0”——跳轉到 _main_0,說明真正的主函數是_main_0&am…

React 模態框的設計(二)

自定義組件是每個前端開發者必備的技能。我們在使用現有框架時難免有一些超乎框架以處的特別的需求,比如關于彈窗,每個應用都會用到,但是有時我們使用的框架中提供的彈窗功能也是功能有限,無法滿足我們的應用需求,今天…

【linux】使用 acme.sh 實現了 acme 協議生成免費的SSL 證書

acme.sh 實現了 acme 協議, 可以從 letsencrypt 生成免費的證書. 主要步驟: 安裝 acme.sh生成證書copy 證書到 nginx/apache 或者其他服務更新證書更新 acme.sh出錯怎么辦, 如何調試 下面詳細介紹. 1. 安裝 acme.sh 安裝很簡單, 一個命令: curl https://get.acme.sh | sh…

隱藏餓了么el-select組件的el-select-dropdown部分,只使用el-select的顯示框

隱藏餓了么el-select組件的el-select-dropdown部分,只使用el-select的顯示框 問題: 由于el-select組件的el-select-dropdown部分是自動插入在最外層Body上的,所以在當前組件的scoped中讓el-select-dropdown組件display:none不會生效所以需要: :popper-…

Java架構師之路六、高并發與性能優化:高并發編程、性能調優、線程池、NIO、Netty、高性能數據庫等。

目錄 高并發編程: 性能調優: 線程池: NIO: Netty: 高性能數據庫: 上篇:Java架構師之路五、微服務:微服務架構、服務注冊與發現、服務治理、服務監控、容器化等。-CSDN博客 下篇…

TiDB 7.5.0 LTS 高性能數據批處理方案

過去,TiDB 由于不支持存儲過程、大事務的使用也存在一些限制,使得在 TiDB 上進行一些復雜的數據批量處理變得比較復雜。 TiDB 在面向這種超大規模數據的批處理場景,其能力也一直在演進,其復雜度也變得越來越低: ○ 從…

11.CSS3的媒介(media)查詢

CSS3 的媒介(media)查詢 經典真題 如何使用媒體查詢實現視口寬度大于 320px 小于 640px 時 div 元素寬度變成 30% 媒體查詢 媒體查詢英文全稱 Media Query,顧名思義就是會查詢用戶所使用的媒體或者媒介。 在現在,網頁的瀏覽終端是越來越多了。用戶可…

C++:string類

標準庫中的string類 string類 1. 字符串是表示字符序列的類 2. 標準的字符串類提供了對此類對象的支持,其接口類似于標準字符容器的接口,但添加了專門用于操作單字節字符字符串的設計特性。 3. string類是使用char(即作為它的字符類型,使用…

ChatGPT 是什么

文章目錄 一、ChatGPT 是什么二、ChatGPT的發明者三、ChatGPT的運作方式四、ChatGPT的技術五、ChatGPT的優勢六、ChatGPT的局限性七、ChatGPT的應用八、ChatGPT的未來九、總結 一、ChatGPT 是什么 OpenAI的ChatGPT,即Chat Generative Pre-Trained Transformer&…

3個精美的wordpress企業網站模板

WordPress企業網站模板 https://www.zhanyes.com/qiye/6305.html WordPress企業官網模板 https://www.zhanyes.com/qiye/6309.html WordPress律師模板 https://www.zhanyes.com/qiye/23.html

SQL注入漏洞解析--less-2

首先我們進入第二關 思路: 1.先判斷是什么類型的注入 2.根據類型我們在找注入點 步驟: 1.提示我們輸入id數字,那我們先輸入1猜一下 2.這里正常回顯,當我們后邊加上時可以看到報錯,且報錯信息看不到數字&#xff0…

輕松掌握opencv的8種圖像變換

文章目錄 opencv的8種圖像變換1. 圖像放大、縮小2. 圖像平移3. 圖像旋轉4. 圖像仿射變換5. 圖像裁剪6. 圖像的位運算(AND, OR, XOR)7. 圖像的分離和融合8. 圖像的顏色空間 opencv的8種圖像變換 1. 圖像放大、縮小 我們先看下原圖 import cv2 import ma…