参考资料
作者: IGI-111创建于 2023年8月31日更新于 2026年9月11日
标签enhancementlanguage featureNeeds RFCtracking-issue
这是RFC[参考]的追踪问题(https://GitHub.com/FuelLabs/sway-rfcs/blob/master/rfcs/0011-references.md)。 这个问题的实验性特征旗帜是 " 参考 " 。
□ 说明
详情见RFC参考。
关于语法和语义学的详细例子,见文件0010-References.sw.
□ 突破变化 将“ ref mut” 函数参数替换为“ `&mut”
将`ref mut'改为``&mut',需要做以下工作:
- 在函数定义中,每个
ref mut'参数必须被取而代之。 例如:ref mut x: u64'成为`x: & mut u64'. - 当一个函数被调用时,所传递的参数也必须被标记为QQmut'. 例如,与其只是通过
p'参数,不如通过mut p'参数。 - 在函数正文中,根据参数的用法和类型,可能需要对参数进行去比.
让我们来看看一个详细的例子:
{\fn华文楷体\fs16\1cHE0E0E0}摇摆
fn fn with ref mut(ref mut x:u64, ref mut s: MyStruct) {
×
s.some 可变 方法 ();
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
fn 主( ) { 让 mut x = 0; 让哑巴 s = MyStruct {...}
fn with ref mut(x, s); (中文(简体) ). {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
变更后,上述代码将变为:
{\fn华文楷体\fs16\1cHE0E0E0}摇摆
/ 所有`ref mut's被取而代之的是``&mut'.
fn fn with ref mut(x: &mut u64, s: &mut MyStruct) {
/ 我们必须参照`x' (`u64')来更改引用的数值。
*x ×× 1; ========================
// 为结构方法自动引用
// 访问,因此没有必要在这里对`s'作贬义.
s.some 可变 方法 ();
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
fn 主( ) {
让 mut x = 0;
让哑巴 s = MyStruct {...}
/ 请检查url=值 (帮助). 在调用函数时,我们必须通过引用
/ 到可变值。
fn with ref mut(和mut x, &mut s) ; (中文(简体) ).
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
□步骤
- 参考资料
- 参考资料和可变性
- 不可变的不可变值引用
- 对不可变值的可变引用
- 不可改变地提及可变值
- 可变的可变值参考
- 参考表达式
- 参考所有可被引用的表达式
- 参考文献
- 引用不可引用的表达式时发现错误
- 在总计中嵌入参考文献
- 支持递归类型
- 参考总量的一部分
- ASM区块中的参考文献
- 通过提及ASM区块
- 从ASM 块返回引用
- 用于参考类型的缩写
- 非一般参考类型
- [ 一般参考类型
- [ 参考类型的拖拉机
- 非一般参考类型
- [ 一般参考类型
- 参考资料和通则
- 参考文献
- * 运算符
- [x][] 运营商
- [x]. 运算符
- 在重新安排工作时,参照LHS
- 参考文献 . . . . . . .
内容来源: FuelLabs/sway