#5063·sway

参考资料

作者: 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
  • 参考文献 . . . . . . .