• Ephera@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    10 hours ago

    Ah, I’m not talking about Ruby, I’m talking about language design in general.

    I’m currently mostly doing Rust, so I can only really name that as an example (even though there’s very likely other languages that allow this, too), but yeah, here’s for example the 64-bit signed integer in Rust: https://doc.rust-lang.org/stable/std/primitive.i64.html

    That is a primitive type, not an object, so it is exactly 64-bits in size and stored on the stack, not the heap. But as you can see in the documentation, Rust allows for associated functions anyways, like for example:

    let my_number: i64 = -3;
    my_number.abs()  //returns the absolute value, so 3
    

    That’s because that last call is just syntactic sugar for calling the same function statically on the type:

    i64::abs(my_number)