A scope groups the initialization visually together, while adding the let app = app;
feels like it just adds clutter - I'd probably just leave it mut in that case.
You can have setters that set private fields, there are also sometimes structs with mixed private and public fields
Yeah if you have the second option, use it, but if the struct has private fields it won't work.
If you're ever forced to do something the second way, you can also wrap it in braces, that way you end up with an immutable value again:
let app = {
let mut app = ...
...
app
};
Definitely the second one.
- It avoids Mut
- It makes clear that the initialization is over at the end of of the statement. The first option invites people to change some more properties hundreds of lines down where you won't see them.
Here's a link to the EurKey website: https://eurkey.steffen.bruentjen.eu
For european languages I usually recommend learning using an ANSI keyboard and using the EurKey layout (I installed it on Linux/Mac/Win and Android for a hardware keyboard without any issues). That way you have a larger choice in custom keyboards and a lot of Keyboard shortcuts make more sense (because software usually seems to be written for ANSI keyboards).
But I'm not sure how that would go with Cyrillic.
Mace is a brand of pepper spray.
Not sure if that's a little boy or an old lady.
Stock GNOME doesn't have tray icons. If your distribution does show them, they probably preinstalled an extension for you (like Ubuntu does).
Because you don't control third party libraries