面试题答案
一键面试get
方法:- 安全性:
get
方法是安全的。它接受一个索引值作为参数,如果索引在向量的有效范围内,get
方法会返回一个Option<&T>
,其中Some(&T)
包含对向量中对应元素的引用,若索引超出范围,则返回None
。这使得在使用get
方法时,开发者可以通过处理Option
类型来优雅地应对越界情况,避免程序因访问无效内存而崩溃。 - 示例:
let v = vec![1, 2, 3]; let element = v.get(2); match element { Some(&value) => println!("Element at index 2 is: {}", value), None => println!("Index out of bounds"), }
- 安全性:
- 索引操作符
[]
:- 安全性:索引操作符
[]
是不安全的。如果使用[]
操作符访问向量元素且索引超出向量的有效范围,程序会在运行时发生panic
,导致程序异常终止。这种方式没有提供一种在运行时安全处理越界情况的机制,更适用于在开发者能够确保索引始终有效的场景。 - 示例:
let v = vec![1, 2, 3]; let element = v[2]; println!("Element at index 2 is: {}", element); // 如果使用 v[3],程序会 panic
- 安全性:索引操作符