this post was submitted on 02 Oct 2024
209 points (98.2% liked)

196

16714 readers
4016 users here now

Be sure to follow the rule before you head out.

Rule: You must post before you leave.

^other^ ^rules^

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 14 points 2 months ago* (last edited 2 months ago) (3 children)

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

[–] [email protected] 19 points 2 months ago

use std

Oh no….

[–] [email protected] 12 points 2 months ago (1 children)
[–] [email protected] 4 points 2 months ago (1 children)
[–] [email protected] 6 points 2 months ago (1 children)

If you made it static, sure, but right now you're living compiler error

[–] [email protected] 3 points 2 months ago* (last edited 2 months ago) (1 children)

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

[–] [email protected] 3 points 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)

[–] [email protected] 3 points 2 months ago

I personally would have matched the sucked... Maybe printed some lovely message about being content or somezhin