class Prism::RationalNode
Представляет литерал рационального числа.
1.0r ^^^^
Атрибуты
Знаменатель рационального числа.
1.5r # denominator 2
Числитель рационального числа.
1.5r # numerator 3
Публичные методы класса
# File lib/prism/node.rb, line 15251 def initialize(source, node_id, location, flags, numerator, denominator) @source = source @node_id = node_id @location = location @flags = flags @numerator = numerator @denominator = denominator end
Инициализирует новый узел RationalNode.
# File lib/prism/node.rb, line 15334 def self.type :rational_node end
Возвращает символьное представление типа этого узла. См. Node::type.
Публичные методы экземпляра
# File lib/prism/node.rb, line 15340
def ===(other)
other.is_a?(RationalNode) &&
(flags === other.flags) &&
(numerator === other.numerator) &&
(denominator === other.denominator)
end Реализует проверку case-equality для узла. По сути, это ==, но без сравнения значений расположений. Проверяется только наличие расположений.
# File lib/prism/node.rb, line 15261 def accept(visitor) visitor.visit_rational_node(self) end
def accept: (Visitor visitor) -> void
# File lib/prism/node.rb, line 15294 def binary? flags.anybits?(IntegerBaseFlags::BINARY) end
def binary?: () -> bool
# File lib/prism/node.rb, line 15266 def child_nodes [] end
def child_nodes: () -> Array
# File lib/prism/node.rb, line 15276 def comment_targets [] #: Array[Prism::node | Location] end
def comment_targets: () -> Array[Node | Location]
# File lib/prism/node.rb, line 15271 def compact_child_nodes [] end
def compact_child_nodes: () -> Array
# File lib/prism/node.rb, line 15281 def copy(node_id: self.node_id, location: self.location, flags: self.flags, numerator: self.numerator, denominator: self.denominator) RationalNode.new(source, node_id, location, flags, numerator, denominator) end
def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?numerator: Integer, ?denominator: Integer) -> RationalNode
# File lib/prism/node.rb, line 15299 def decimal? flags.anybits?(IntegerBaseFlags::DECIMAL) end
def decimal?: () -> bool
# File lib/prism/node.rb, line 15289
def deconstruct_keys(keys)
{ node_id: node_id, location: location, numerator: numerator, denominator: denominator }
end def deconstruct_keys: (Array keys) -> { node_id: Integer, location: Location, numerator: Integer, denominator: Integer }
# File lib/prism/node.rb, line 15309 def hexadecimal? flags.anybits?(IntegerBaseFlags::HEXADECIMAL) end
def hexadecimal?: () -> bool
# File lib/prism/node.rb, line 15324 def inspect InspectVisitor.compose(self) end
def inspect -> String
# File lib/prism/node_ext.rb, line 123
def numeric
deprecated("value", "numerator", "denominator")
if denominator == 1
IntegerNode.new(source, -1, location.chop, flags, numerator)
else
FloatNode.new(source, -1, location.chop, 0, numerator.to_f / denominator)
end
end Возвращает значение узла как IntegerNode или FloatNode. Этот метод устарел; вместо него используйте value или numerator/#denominator.
# File lib/prism/node.rb, line 15304 def octal? flags.anybits?(IntegerBaseFlags::OCTAL) end
def octal?: () -> bool
# File lib/prism/node.rb, line 15329 def type :rational_node end
Возвращает символьное представление типа этого узла. См. Node#type.
# File lib/prism/node_ext.rb, line 117 def value Rational(numerator, denominator) end
Возвращает значение узла как объект Ruby Rational.
Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.