跳至内容

变量

为了存储一个值并在之后重复使用它,可以将其赋值给一个变量。

例如,如果你想说三次 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)