红宝石字面量
可以分配给变量的任何常量值都称为字面量/常量。我们每次在 ruby 代码中键入对象时都使用字面量。 Ruby 字面量与其他编程语言相同,只是稍作调整,此处有所不同。
这些是 Ruby 中的以下字面量。
- 布尔值和零
- 数字或整数
- 字符串
- 符号
- 范围
- 数组
- 哈希
- 常用表达
Ruby字面量的类型
- 布尔值和 nil :
这些是布尔常量。这里 false 和 nil 具有相同的行为,尽管 nil 表示未知或空。它的行为与条件语句中的 false 相同,但仅返回 true 或 false 常量。 true 表现相同表示正变量。true, false, nil
例子:
# Demo for Boolean literals puts(3+7==10);# returns true puts(3+7!=10);# returns false puts(3+7==nil);# return false
输出:
true false false
- 数字或整数:
Ruby 支持所有类型的整数。我们可以将任意大小的整数写成 100 或 1_00 或 10_0。出于可读性目的,Ruby 允许在其数字中包含任意数量的“_”。
句法 :decimal(0d or 0D) octal(0o or 0O or 0) hex-decimal(0x or 0X) binary(0b or 0B). float(num- or numE1)
例子 :
puts("300+1_00+10_0=", 300+1_00+10_0 ); puts("hexa-", 0xaa ); puts("octal-", 0o222 ); puts("decimal-", 0d170, " ", 170); puts("binary-", 0b1010); puts("Float-", 1.234E1); puts("hexa-", aa);# error
输出 :
300+1_00+10_0=500 hexa-170 octal-146 decimal-170 170 binary-10 Float-12.34 main.rb:9:in `': undefined local variable or method `aa' for main:Object (NameError)
- 细绳 :
它与Python相同。字符串可以用“”或“”表示,其中“”允许转义字符进行插值。
句法:#{expression}
例子:
puts( "Two multiply three is Six : #{2 * 3}") puts("guardians\nof\nthe\ngalaxy"); puts('guardians\nof\nthe\ngalaxy')
输出 :
Two multiply three is Six: 6 guardians of the galaxy guardians\nof\nthe\ngalaxy
- 象征 :
在 Ruby 中,符号代表解释器内部的名称。符号被放置在 ruby 的解释器中,并且从不被垃圾收集。因此,它会影响解释器的大小,无论是大量创建还是从未释放。
句法 :ruby_symbol
我们还可以通过插值创建符号键:
puts(:":guardian_id#{20+1_5}")
输出 :
:guardian_id35
- 范围:
它类似于我们在Python range()中使用的那个。打印给定边界(包括)之间的所有可能值。
句法 :range1..range2
例子:
for i in 2..5 do puts(i) end
输出:
2 3 4 5
- 大批 :
数组是对象的集合,使用 '[' 和 ']' 创建。
例子:# Code for Array Demo gog = ['Quill', 'Gamora', 'Rocket', 'Groot', 'Drax'] puts(gog[0]) puts(gog[2]) # Negative indices are counted from the end print("Negative Index:", gog[-3], "\n\n") # [start, count] puts("[start, count]:", gog[0, 3], "\n") # Using ranges. # as range size exceeded it prints till full length puts("Using range:", gog[0..7])
输出:
Quill Rocket Negative Index:Rocket [start, count]: Quill Gamora Rocket Using range: Quill Gamora Rocket Groot Drax
- 哈希:
它类似于我们在Python中使用的那个。我们可以使用符号键创建哈希,因为它们一旦创建就不可更改,并且可以作为完美键。
句法 :{key:value}
例子:
# way of creating hash hash1 = Hash.new # way of creating hash hash2 = {} # initializing values and keys hash1 = {"Quill" => 100, "Drax" => 200, "Gamora" => 300} # initializing values and keys with symbol keys hash2 = {Quill:1, Gamora:2} print(hash1.keys, "\n") print(hash2.keys, "\n") for i in hash2.keys do # : Should be used while checking before # its a part of the symbol key if i==:Quill # Printing value and assigned key print(i, "=>", hash2[i], "\n") end end
输出:
["Quill", "Drax", "Gamora"] [:Quill, :Gamora] Quill=>1
- 正则表达式 :
它类似于我们在 perl 中的{/pattern/}。 ruby 中的正则表达式可以使用或不使用分隔符来创建。
句法 :/pattern/ or %r{pattern}
我们可以使用符号键创建散列,因为它们一旦创建就不可更改,它们充当完美键。
句法 :{key:value}
例子:
line1 = "guardians of the galaxy"; line2 = "Doctor Strange"; # Checks whether ‘of’ is in line1 in // format if ( line1 =~ /of(.*)/ ) puts line1 end # Checks whether ‘Doc’ is in line1 in %r{} format. if ( line2 =~ %r{Doc(.*)} ) puts line2 end # Checks whether ‘off’ is in line1 . if ( line2 =~ /off(.*)/ ) puts line2 else puts "nothing" end
输出:
guardians of the galaxy Doctor Strange nothing