Skip to content

Literals

Crystal provides several literals for creating values of some basic types.

Literal Sample values
Nil nil
Bool true, false
Integers 18, -12, 19_i64, 14_u32,64_u8
Floats 1.0, 1.0_f32, 1e10, -0.5
Char 'a', '\n', 'あ'
String "foo\tbar", %("あ"), %q(foo #{foo})
Symbol :symbol, :"foo bar"
Array [1, 2, 3], [1, 2, 3] of Int32, %w(one two three)
Array-like Set{1, 2, 3}
Hash {"foo" => 2}, {} of String => Int32
Hash-like MyType{"foo" => "bar"}
Range 1..9, 1...10, 0..var
Regex /(foo)?bar/, /foo #{foo}/imx, %r(foo/)
Tuple {1, "hello", 'x'}
NamedTuple {name: "Crystal", year: 2011}, {"this is a key": 1}
Proc ->(x : Int32, y : Int32) { x + y }
Command `echo foo`, %x(echo foo)