In rust, you declare variables with the keyword "let". Variables are implied to be immutable(values can not be changed), unless otherwise specified. Variable types are optional, except for constants, which must have a specified type, as well as other non-primitive datatypes(vectors, etc.). You can declare types with the :
Scope: Within separate scopes, you can declare variables with the same name, as some entirely different, with even different datatypes. I showcase this in my code with the variable x. In the main function scope, it has a datatype of i32(32 bit integer), while within an inner scope of the function, it has a datatype of string. Except for constants, no variables can have global scope, and must be defined in the scope of where you are working(function, class, etc.)