|
|
|
|
|
by oblio
2110 days ago
|
|
I'll admit it wasn't the best example. Here, have another one: I want to have a string with this content: "Fluffy Nero Polly<random text> ... <random text> Trexxie" Which one is easier to figure out and debug? A. "${cat} ${dog} ${bird} <random text> ... <random text> ${dinosaur}" B "%s %s %s <random text> ... <random text> %s".formatted(dog, giraffe, dinosaur, ..., cat). |
|
To me, the difference shows up more with this scenario:
A: "${v1} ${v2} ${v3} ${v4}"
B1: "%s %s %s %s".formatted(v1, v2, v3)
B2: "%s %s %s %s".formatted(v1, v2, v3, v4, v5)
B3: "%s %s %s".formatted(v1, v2, v3, v4)
A does what you tell it, whether it's wrong or right. B has a chance of warning you that the argument list and the format specifier don't match. On the other hand, B gives you two things that have to be kept in sync with each other, and A can't get out of sync, since there's only one thing.
So: Less of a chance to make the error, or more of a chance to catch it. Which is better? I lean toward A, but I will admit that it seems subjective.