this post was submitted on 13 Jul 2023
2 points (100.0% liked)

Programming Horror

2131 readers
1 users here now

Welcome to Programming Horror!

This is a place to share strange or terrible code you come across.

For more general memes about programming there's also Programmer Humor.

Looking for mods. If youre interested in moderating the community feel free to dm @Ategon@programming.dev

Rules

Credits

founded 2 years ago
MODERATORS
 
top 3 comments
sorted by: hot top controversial new old
[–] nous@programming.dev 0 points 2 years ago (1 children)

You can give it variables:

let foo = 4;
let bar = "bar";
format!("{foo}{bar}");

If you have a format string that long with arbatary expressions putting them all raw in the format string is not going to improve much. Better to give them actual names first.

[–] Walnut356@programming.dev 0 points 2 years ago (1 children)

in this case it's about 80% function calls. They're convenience functions for assembly instructions, so they're of the form:

load(Reg::D, "A"),
load_const(5),

which is more useful than variables would be. I guess i could use .join or a crate like concat_string? Either way i sorely miss arbitrary expression format strings from python =(

[–] sukhmel@programming.dev 1 points 2 years ago

As far as I remember, the point for not allowing arbitrary expressions is that it makes what looks like formatting an arbitrary complex operation and that it doesn't improve readability that much.

Although sometimes I miss being able to refer to fields in format, for function calls and especially this many, I agree with an advice to put strings in a vector and joining them. Plus, there is a limit to how many arguments format macro can accept, iirc