• bi_tux@lemmy.world
    link
    fedilink
    arrow-up
    13
    ·
    edit-2
    2 months ago

    RWIIR!!!

    edit: here, I did it for you:

    use std::*;
    
    static mut sucked: bool = false;
    
    fn main() {
            unsafe {
                    check_sucked();
            }
            println!("Kris has been sucked is {}", sucked)
    }
    
    unsafe fn check_sucked() {
            if !sucked {
                    suck();
            }
    }
    
    fn suck() {
            sucked = true;
    }
    

    edit 2: fixed it

          • bi_tux@lemmy.world
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            2 months ago

            oh well, I’m just starting to learn the language and come from java, so I thought: wait, it can’t be static

            • zea@lemmy.blahaj.zone
              link
              fedilink
              arrow-up
              3
              ·
              2 months ago

              const is more like C++ constexpr, but static is similar to static from C: it’s a variable that lives outside any scope. Of course, that means the same static can be accessed by multiple threads, so writing to a static is unsafe (except for types like Mutex, you can safely use those to write, but your static won’t be declared mut)