YLy*_*Lyu 9 performance rust unwrap
fn main() {
let _one = None.unwrap_or("one".to_string());
let _two = None.unwrap_or_else(|| "two".to_string());
}
Run Code Online (Sandbox Code Playgroud)
有什么特别的原因,人们应该更喜欢unwrap_or_else了unwrap_or?
我看到了unwrap_or热切的评论(以这个为例)。这是否意味着unwrap_or总是在程序执行之前评估中的值?并且只有在程序执行到该行时才调用中的FnOnce值unwrap_or_else?
The*_*kis 19
两者都在程序执行期间进行评估,并且可以是任意值。不同之处在于:
unwrap_or回退值之前评估unwrap_or被调用,因此无论是需要与否进行评估(因为锈病是一个热切的语言)。unwrap_or_else当值回退时,才会评估unwrap_or_else触发器(通过调用传递的功能),因此,仅在网络需要的时候进行评估。| 归档时间: |
|
| 查看次数: |
6287 次 |
| 最近记录: |