Crystal lang 在crystal中打印没有内存id的对象

Crystal lang 在crystal中打印没有内存id的对象,crystal-lang,Crystal Lang,如果使用puts打印对象,将打印内存id。 有没有一种方法可以在没有内存id的情况下打印对象(包含所有元素) 当我想散列一个对象(使用OpenSSL::Digest.new(“SHA256”))时,也会出现同样的问题, 对象的内存id将包含在哈希中, 所以,如果我用相同的组件散列2个对象,它们将有不同的散列。如何防止这种情况发生?您可以在对象上定义自己的“to#u s(IO)”方法。 或者一个全新的方法“给我一些可散列的东西”或者甚至定义该方法…请小心,因为散列可能不在调用之间…示例?您可能不应

如果使用puts打印对象,将打印内存id。 有没有一种方法可以在没有内存id的情况下打印对象(包含所有元素)

当我想散列一个对象(使用
OpenSSL::Digest.new(“SHA256”)
)时,也会出现同样的问题, 对象的内存id将包含在哈希中, 所以,如果我用相同的组件散列2个对象,它们将有不同的散列。如何防止这种情况发生?

您可以在对象上定义自己的“to#u s(IO)”方法。
或者一个全新的方法“给我一些可散列的东西”或者甚至定义该方法…请小心,因为散列可能不在调用之间…

示例?您可能不应该使用对象的字符串表示来散列某些东西。除了请求帮助构建解决方案,您应该首先解释您的问题。也许我们可以帮你找到一个不同的解决方案。