Content-Length: 24907 | pFad | https://doc.rust-lang.org/std/string/../error/../string/../../std/../error_codes/./E0500.html

E0500 - Error codes index

Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Error code E0500

A borrowed variable was used by a closure.

Erroneous code example:

#![allow(unused)]
fn main() {
fn you_know_nothing(jon_snow: &mut i32) {
    let nights_watch = &jon_snow;
    let starks = || {
        *jon_snow = 3; // error: closure requires unique access to `jon_snow`
                       //        but it is already borrowed
    };
    println!("{}", nights_watch);
}
}

In here, jon_snow is already borrowed by the nights_watch reference, so it cannot be borrowed by the starks closure at the same time. To fix this issue, you can create the closure after the borrow has ended:

#![allow(unused)]
fn main() {
fn you_know_nothing(jon_snow: &mut i32) {
    let nights_watch = &jon_snow;
    println!("{}", nights_watch);
    let starks = || {
        *jon_snow = 3;
    };
}
}

Or, if the type implements the Clone trait, you can clone it between closures:

#![allow(unused)]
fn main() {
fn you_know_nothing(jon_snow: &mut i32) {
    let mut jon_copy = jon_snow.clone();
    let starks = || {
        *jon_snow = 3;
    };
    println!("{}", jon_copy);
}
}








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://doc.rust-lang.org/std/string/../error/../string/../../std/../error_codes/./E0500.html

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy