網(wǎng)站首頁 編程語言 正文
在 Rust 中,Self 是一個特殊的類型標識符,它代表了當前結(jié)構(gòu)體或枚舉類型。在結(jié)構(gòu)體或枚舉類型的定義中,Self 可以用于表示該類型的任何地方,包括方法簽名、構(gòu)造函數(shù)、類型別名等。
- 構(gòu)造函數(shù)中的 Self: 在這段代碼中:
pub fn new(_session_id: u32, _channel_id: u32) -> Self {
Self {
// ...
}
}
這里的Self
是結(jié)構(gòu)體或枚舉類型的占位符。在構(gòu)造函數(shù)new
的返回類型和內(nèi)部實例化部分使用Self
時,它代表的是當前實現(xiàn)這個方法的結(jié)構(gòu)體或枚舉類型本身。所以在這個上下文中,Self { ... }
創(chuàng)建了一個新的結(jié)構(gòu)體實例,并初始化了所有字段。
在以下代碼中,Self { value: 42 }
是一個構(gòu)造函數(shù),用于創(chuàng)建一個 Example
結(jié)構(gòu)體的新實例,其中value
成員變量被初始化為 42
:
struct Example {
value: i32,
}
impl Example {
fn new(value: i32) -> Self {
Self { value }
}
}
在給定的代碼片段中,Self { … } 表示的是當前結(jié)構(gòu)體或枚舉類型的構(gòu)造函數(shù)。它用于創(chuàng)建一個新的實例,并且可以接受一些參數(shù)來初始化該實例的成員變量。
- 關(guān)聯(lián)函數(shù)(非方法)中的 self 或 &self、&mut self 等: 在方法簽名中,如:
fn some_method(&self) {}
這里的 self 表示方法接收者。在方法定義中,self、&self 和 &mut self 分別表示:
- self: 消耗所有權(quán),意味著調(diào)用此方法會移動結(jié)構(gòu)體的所有權(quán).
- &self: 獲取結(jié)構(gòu)體的一個不可變引用,允許訪問但不修改結(jié)構(gòu)體內(nèi)容。
- &mut self: 獲取結(jié)構(gòu)體的一個可變引用,允許在方法執(zhí)行期間修改結(jié)構(gòu)體內(nèi)容。
原文鏈接:https://blog.csdn.net/weixin_40482577/article/details/136762520
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-06-15 oracle多表簡單查詢實例代碼_oracle
- 2022-09-26 ASP.NET?Core?6最小API中使用日志和DI示例詳解_ASP.NET
- 2022-03-20 基于ABP框架實現(xiàn)數(shù)據(jù)字典開發(fā)_實用技巧
- 2023-01-21 flask中響應(yīng)錯誤的處理及errorhandler的應(yīng)用方式_python
- 2022-02-27 Required String paramter ‘username‘ is not present
- 2022-09-09 python?對excel交互工具的使用詳情_python
- 2023-02-01 Python中列表遍歷使用range和enumerate的區(qū)別講解_python
- 2022-12-23 Kotlin?try?catch異常處理i詳解_Android
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支