在Ruby中克隆syscall

时间:2018-07-28 22:13:35

标签: ruby process fork clone

我一直在寻找如何用红宝石打电话给clone。 我认为必须在https://ruby-doc.org/core-2.1.2/Process.html此处进行记录,但事实并非如此。

但是,在我的脚本中,如果我只是尝试print clone,它会给我类似 main 的信息。我找不到任何文档。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我从您的问题中得到的是您想要clone文档。 为简便起见,请安装撬宝石

gem install pry pry-doc

然后从命令行键入pry --simple-prompt,然后显示克隆文档

>> show-doc clone

From: object.c (C Method):
Owner: Kernel
Visibility: public
Signature: clone(*arg1)
Number of lines: 19

Produces a shallow copy of obj---the instance variables of
obj are copied, but not the objects they reference.
clone copies the frozen (unless :freeze keyword argument
is given with a false value) and tainted state of obj.
See also the discussion under Object#dup.

   class Klass
      attr_accessor :str
   end
   s1 = Klass.new      #=> #<Klass:0x401b3a38>
   s1.str = "Hello"    #=> "Hello"
   s2 = s1.clone       #=> #<Klass:0x401b3998 @str="Hello">
   s2.str[1,4] = "i"   #=> "i"
   s1.inspect          #=> "#<Klass:0x401b3a38 @str=\"Hi\">"
   s2.inspect          #=> "#<Klass:0x401b3998 @str=\"Hi\">"

This method may have class-specific behavior.  If so, that
behavior will be documented under the #initialize_copy method of
the class.

HTH

答案 1 :(得分:1)

Ruby有一个clone方法,但与fork或进程无关。 Ruby中的clone方法用于制作消息接收者的浅表副本。在上面的示例中,没有指定接收方,因此您可能猜到它是默认接收方,称为“主”

有关Ruby克隆的更多信息,请参见:clone docs