- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
class A
def initialize(string, number)
@string = string
@number = number
end
def to_s
"In to_s:\n #{@string}, #{@number}\n"
end
def to_a
"In to_a:\n #{@string}, #{@number}\n"
end
end
puts a = A.new("hello world", 5)
输出是
In to_s:
hello world, 5
to_s
方法是如何自动调用的?
为什么没有自动调用另一个方法,例如 to_a
?
既然我没有在to_s
方法中写puts,为什么会打印output。
最佳答案
您将它发送到 puts
,它将尝试使用 to_s
将对象呈现为字符串。
如果您将最后一行更改为:puts A.new("hello world", 5).to_a
,它会在返回的数组上调用 to_s
并且A 的 to_s
不会被调用。
关于Ruby 在创建对象时自动调用 to_s 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12040527/
我认为 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),它可以接收多
我是一名优秀的程序员,十分优秀!