【发布时间】:2018-12-23 00:10:01
【问题描述】:
我发现这是可以编译的:
let x = &mut 10;
*x = 20;
这很令人困惑。可变借用字面量的语义是什么?
我来自 C++,编译器绝对不允许我像这样引用右值:
int *x = &10;
int &y = 10;
【问题讨论】:
-
@Boiethios 我不认为这是重复的。是有关系的,绝对的。但问题不同。
-
有趣的是,在 C 中,
#include <stdio.h> int main(void) { int *p = &(int){ 10 }; *p = 20; printf("%d", *p); }是允许的。
标签: rust semantics literals borrowing