- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在对类中的一个变量进行更改后,我希望使用上述变量的新值调用我已实现的类的字符串 ( to_s
) 方法。我目前使用:
class Car
...
def ask_for_color_change(string)
normalize = string.downcase
if normalize == "yes"
color = gets.chomp
self.set_color(color)
# tried with self.to_s also, doesn't work
puts self
elsif normalize == "no"
puts "happy you like your factory color -> #{@color}"
else
puts "please reply with either yes/no ONLY"
end
end
def to_s
puts "New Car Details"
puts "---------------"
puts "Make: #{@make}"
puts "Model: #{@model}"
puts "Color: #{@color}"
end
end
puts self
在上述方法输出中 #<Car:0x00007fabd18ddc98>
.据我所知,这是默认的 to_s
执行。所以,换句话说,我如何调用重写的 to_s
在类(class)本身内?
最佳答案
我现在可以通过像这样重构 to_s
代码,在 ask_for_color_change(string)
方法中成功地隐式调用 to_s
:
def to_s
"
New Car Details
---------------
Make: #{@make}
Model: #{@model}
Color: #{@color}
"
end
因此,它与 puts
的实现方式有关。对于 puts
方法仍然可以看到默认实现的能力的评论将不胜感激。谢谢!
关于ruby - 是否可以在 ruby 类中调用重写的 to_s?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53582054/
我认为 try 总是带有 symbol,比如 foo.try(:to_s?)。但我发现 foo.try(&:to_s?) 也可以,但我找不到它们之间的区别。 它们之间有区别吗? 最佳答案 foo.tr
这个问题在这里已经有了答案: How do I print out the contents of an object in Rails for easy debugging? (9 个回答) 关闭
当我使用 puts 时,我重写了 to_s 方法以获得漂亮的输出,但同时我似乎失去了检查对象的能力。有没有办法在覆盖 to_s 的同时获得 inspect 的正常输出? class Person
我在方法中调用 to_s: $ def my_function(num) $ number = num.to_s.split(//) $ puts number $ end $ my
我很好奇。下面的代码片段产生 FrozenError 是否令人惊讶? ?神奇评论# frozen_string_literal: true不存在。 n = nil s = n.to_s s.force
我编写了一个类,它的作用类似于另一个类的数组。我有一个 to_s 方法,当按如下方式使用时,它以类似于数组的方式返回: array = [1, 2, 3, 4] puts array 这导致输出: 1
我正在处理 Codewars Ruby 问题,但不理解我看到的错误。以下是说明: Coding decimal numbers with factorials is a way of writing
查看下面 puts 语句输出的正确方法是什么?对于这样一个简单的问题,我深表歉意……我对 ruby 有点生疏。 github repo require 'active_support' require
我有一个救援 block ,它检查抛出的异常是否正确,如下所示: rescue Exception if $!.to_s() != "myException" Err("U
我正在用 Ruby 构建一个简单的工厂,它返回一个 Callable(在本例中是一个 Lambda),它知道如何转换为传递的类型的名称(例如 String.name # => 'String'). 为
Peter Cooper 的 Beginning Ruby 中关于多态性的示例之一涉及 to_s 方法。他举了这个例子: puts 1000.to_s puts [1, 2, 3].to_s puts
class A def initialize(string, number) @string = string @number = number end def to_s
我有以下算法(它搜索二进制表示也是回文的回文): #!/usr/bin/env ruby class Runner attr_accessor :min, :max, :sum def ini
让我们说: n = 5 n.to_s p n n 的结果仍然是 5 而不是 "5"。将原始变量 n 替换为我新转换的 n 而无需执行以下操作的最短方法是什么: n = 5 a = n.to_s p a
在“What does it mean to use the name of a class for string interpolation?”中,Candide 建议字符串中的 #{} 隐式调用
我不确定这是否是一个错误。但是我一直在玩big我不明白为什么这段代码会这样工作: https://carc.in/#/r/2w96 代码 require "big" x = BigInt.new(1
如果输入是整个数据帧,则按照我读过的方式在数据帧上应用 pandas to_numeric 或 to_datetime 函数可以正常工作,但如果输入是数据帧的多个列的一部分则不行。 我是做错了什么还是
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
就这么简单 c = :cat c.to_s puts c.class 给我符号,然后 c = "cat" c.to_sym puts c.class 给出字符串。我使用的 Ruby 是 1.9.3,文
Ruby 的 Array 类有内置方法 to_s 可以将数组转换为字符串。此方法也适用于多维数组。这个方法是如何实现的? 我想知道它,所以我可以重新实现一个方法 my_to_s(ary),它可以接收多
我是一名优秀的程序员,十分优秀!