变量¶
为了存储一个值并在之后重复使用它,可以将其赋值给一个变量。
例如,如果你想说三次 Hello Penny!
,你不需要重复三次相同的字符串。相反,你可以将它赋值给一个变量,然后重复使用它。
message = "Hello Penny!"
puts message
puts message
puts message
此程序将字符串 Hello Penny!
打印三次到标准输出,每次后面跟着一个换行符。
变量名总是以一个小写 Unicode 字母(或下划线,但这是为特殊用例保留的)开头,并且可以包含字母数字字符或下划线。作为一种典型的约定,避免使用大写字母,并且名称以 snake_case
编写。
注意
本课讨论的变量类型称为 *局部变量*。其他类型将在后面介绍。现在,我们只关注局部变量。
类型¶
变量的类型由编译器自动推断。在上面的例子中,它是 String
。
您可以使用 typeof
验证这一点。
message = "Hello Penny!"
p! typeof(message)
注意
p!
与 puts
类似,它将值打印到标准输出,但它还会打印代码中的表达式。这使得它成为检查 Crystal 程序状态和调试的实用工具。
重新赋值¶
可以使用不同的值对变量进行重新赋值。
message = "Hello Penny!"
p! message
message = "Hello Sheldon!"
p! message
这也适用于不同类型的值。当分配不同类型的值时,变量的类型会发生改变。编译器足够智能,能够知道程序中哪个点它拥有哪种类型。
message = "Hello Penny!"
p! message, typeof(message)
message = 73
p! message, typeof(message)