官术网_书友最值得收藏!

Variables, naming conventions, and comments

Data is stored in values such as 1, 3.14, and "Julia", and every other value has a type, for example, the type of 3.14 is Float64. Some other examples of elementary values and their data types are 42 of the Int64 type, true and false of the Bool type, and 'X' of the Char type.

Julia, unlike many modern programming languages, differentiates between single characters and strings. Strings can contain any number of characters, and are specified using double quotes—single quotes are only used for a character literal. Variables are the names that are bound to values by assignments, such as x = 42. They have the type of the value they contain (or reference); this type is given by the typeof function. For example, typeof(x) returns Int64.

The type of a variable can change, because putting x = "I am Julia" now results in typeof(x) returning String. In Julia, we don't have to declare a variable (that indicates its type) such as in C or Java, for instance, but a variable must be initialized (that is, bound to a value) so that Julia can deduce its type:

julia> y = 7 
7     
typeof(y)   # Int64 
julia> y + z 
ERROR: UndefVarError: z not defined 

In the preceding example, z was not assigned a value before we used it, so we got an error. By combining variables through operators and functions such as the + operator (as in the preceding example), we get expressions. An expression always results in a new value after computation. Contrary to many other languages, everything in Julia is an expression, so it returns a value. That's why working in a REPL is so great: because you can see the values at each step.

The type of variables determines what you can do with them, that is, the operators with which they can be combined. In this sense, Julia is a strongly typed language. In the following example, x is still a String value, so it can't be summed with y, which is of type Int64, but if we give x a float value, the sum can be calculated, as shown in the following example:

julia> x + y 
ERROR: MethodError: no method matching +(::String, ::Int64) 
julia> x = 3.5; x + y 
10.5 

Here, the semicolon (;) ends the first expression and suppresses its output. Names of the variables are case-sensitive. By convention, lowercase is used with multiple words separated by an underscore. They start with a letter and, after that, you can use letters, digits, underscores, and exclamation points. You can also use Unicode characters. Use clear, short, and to-the-point names. Here are some valid variable names: mass, moon_velocity, current_time, pos3, and ω1. However, the last two are not very descriptive, and they should better be replaced with, for example, particle_position and particle_ang_velocity.

A line of code preceded by a hash sign (#) is a comment, as we can see in the following example:

# Calculate the gravitational acceleration grav_acc: 
gc = 6.67e-11 # gravitational constant in m3/kg s2 
mass_earth = 5.98e24  # in kg 
radius_earth = 6378100 # in m 
grav_acc = gc * mass_earth / radius_earth^2 # 9.8049 m/s2  

Multiline comments are helpful for writing comments that span across multiple lines or commenting out code. In Julia, all lines between #= and =# are treated as a comment. For printing out values, use the print or println functions, as follows:

julia> print(x) 
3.5 

If you want your printed output to be in color, use printstyled("I love Julia!", color=:red), which returns the argument string in the color indicated by the second argument.

The term object (or instance) is frequently used when dealing with variables of more complex types. However, we will see that, when doing actions on objects, Julia uses functional semantics. We write action(object) instead of object.action(), as we do in more object-oriented languages such as Java or C#.

In a REPL, the value of the last expression is automatically displayed each time a statement is evaluated (unless it ends with a ; sign). In a standalone script, Julia will not display anything unless the script specifically instructs it to. This is achieved with a print or println statement. To display any object in the way the REPL does in code, use display(object) or show(object) (show is a basic function that prints a text representation of an object, which is often more specific than print).

主站蜘蛛池模板: 融水| 定边县| 巫山县| 津南区| 舟山市| 麻阳| 东源县| 清流县| 钦州市| 沂源县| 东阳市| 金秀| 洛川县| 屏山县| 镇江市| 赞皇县| 师宗县| 宜良县| 桓台县| 绍兴市| 华池县| 会泽县| 库伦旗| 谷城县| 安新县| 安福县| 新平| 读书| 玉山县| 泸定县| 新沂市| 泗洪县| 屯门区| 朝阳区| 靖远县| 长治市| 张家川| 华阴市| 昭平县| 邹平县| 莎车县|