单击漂亮的打印后,按钮消失,我无法撤消它,甚至在刷新页面后也是如此.我需要撤消,因为我想编辑代码,当漂亮的打印处于活动状态时,这不起作用.我怎么做?
为什么我可以毫无问题地运行以下语句?
println!("{:?}", (vec!["1".to_string(), "1".to_string(), "1".to_string()]).iter().collect::<Vec<&String>>());
Run Code Online (Sandbox Code Playgroud)
如果我理解正确的话,它会创建一个拥有的字符串数组,获取一个字符串引用的迭代器,然后收集一个字符串引用数组。但这些引用引用了一个在该语句开头就不存在的数组。为什么它有效?
我创建了一个名为code:code.py的模块并编写了一个简单的函数:
def main():
print("simple function")
Run Code Online (Sandbox Code Playgroud)
我尝试在site-packages中删除此文件,当我运行时:
import code
code.main()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:AttributeError:模块'code'没有属性'main'.
有趣的是,如果我将模块重命名为foo.py,这段代码就可以了:
import foo
foo.main()
Run Code Online (Sandbox Code Playgroud)
代码不是保留字,为什么我不能命名模块代码?
以下代码给出了“分配借用”错误。编译器如何知道这一点?编译器是否对 RefCell 进行了特殊封装,或者语言中是否有某些内容允许它告诉编译器您有借用的值?
use std::cell::RefCell;
fn main() {
let mut a = RefCell::new(A{a:5});
let mut b = a.borrow_mut();
a = RefCell::new(A{a:6});
}
Run Code Online (Sandbox Code Playgroud)
另外,为什么这段代码的工作似乎在做完全相同的事情?
use std::cell::RefCell;
fn main() {
let mut a = Box::new(A{a:5});
let mut b = &mut a;
a = Box::new(A{a:6});
}
Run Code Online (Sandbox Code Playgroud)