获得徽章 7
Rust 每日一题
在 Rust 中,当一个变量被借用时,它的所有者仍然可以对它进行修改吗?
Rust 每日一题
下面哪个选项是正确的?
fn main() {
let mut v = vec![1, 2, 3];
let r = &v[1..];
v.push(4);
println!("{:?}", r);
}
A. 编译错误
B. 运行时错误
C. 输出[2, 3]
D. 输出[2, 3, 4]
Rust 每日一题
下面有关所有权的描述错误的是?
A: 变量的所有权可以被转移
B: 当一个函数返回一个值时,这个值的所有权会转移到调用函数的作用域
C: 当一个变量被借用时,它的所有权会转移给借用者
D: 当一个不可变引用被创建时,它指向的值不能被修改
Rust语言——无虚拟机、无垃圾收集器、无运行时、无空指针/野指针/内存越界/缓冲区溢出/段错误、无数据竞争,这么神奇的语言还不想了解一下吗
Rust 每日一题
给定下面的代码,它是否能够编译通过?
use std::borrow::Borrow;
struct MyString(String);
impl Borrow<str> for MyString {
fn borrow(&self) -> &str {
&self.0
}
}
fn main() {
let s = MyString("Hello".to_string());
let t: &str = s.borrow();
println!("{}", t);
}
A. 能够编译通过
B. 不能编译通过,因为没有实现 BorrowMut trait
C. 不能编译通过,因为没有实现 AsRef trait
D. 不能编译通过,因为没有实现 AsMut trait
Rust 每日一题
给定下面的代码,它是否能够编译通过?如果不能,请解释原因。
use std::borrow::BorrowMut;
struct MyVec(Vec<i32>);
impl BorrowMut<[i32]> for MyVec {
fn borrow_mut(&mut self) -> &mut [i32] {
&mut self.0
}
}
fn main() {
let mut v = MyVec(vec![1, 2, 3]);
v.borrow_mut()[0] = 42;
}
Rust 每日一题
下列哪种trait允许将值转换为引用或可变引用?
A:From/Into
B:FromStr
AsRef/AsMutC:
D:Deref/DerefMut
Rust 每日一题
下列哪中数据类型不能使用copy方法?
A:i32
B:u64
C:usize
D:string
Rust 每日一题
下列哪个选项正确地描述了 Rust 中的生命周期?
A. 生命周期是一个变量在内存中存在的时间。
B. 生命周期是一个变量在程序运行期间被访问的次数。
C. 生命周期是一个变量在程序运行期间被修改的次数。
D. 生命周期是一个变量在程序运行期间被引用的次数。
Rust 每日一题
在下面的代码中,生命周期参数 'a 的作用是什么?
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() {
x
} else {
y
}
}
A. 它指定了函数参数 `x` 和 `y` 的生命周期。
B. 它指定了函数返回值的生命周期。
C. 它指定了函数内部所有变量的生命周期。
D. 它指定了整个程序的生命周期。
下一页