我在Ruby中學習套接字。我在Pry會話中嘗試require 'socket'
只得到false
。經過很多麻煩,我決定使用irb
,但事情工作正常。是與Pry捆綁在一起的Socket嗎?
後來,我在pry會話中運行TCPServer.new('localhost', 2000)
而不需要socket
,它工作正常!
我很好奇它爲什麼如此。 socket
已經是pry的一部分了嗎?我檢查了Pry源代碼,但無法弄清楚。關於Ruby 2.3.0
我在Ruby中學習套接字。我在Pry會話中嘗試require 'socket'
只得到false
。經過很多麻煩,我決定使用irb
,但事情工作正常。是與Pry捆綁在一起的Socket嗎?
後來,我在pry會話中運行TCPServer.new('localhost', 2000)
而不需要socket
,它工作正常!
我很好奇它爲什麼如此。 socket
已經是pry的一部分了嗎?我檢查了Pry源代碼,但無法弄清楚。關於Ruby 2.3.0
撬版本0.10.3是socket
在啓動時加載的撬。 irb最初不加載它。您可以隨時通知文件是否已被加載,因爲require
將返回false
,而不是LoadError
。
2.3.1 :001 > require 'socket' # not yet loaded
# => true
2.3.1 :002 > require 'socket' # already loaded
# => false
2.3.1 :003 > require 'not_a_file' # error because it does not exist
# LoadError: cannot load such file -- not_a_file
不,當您啓動Pry時,默認情況下不加載'socket'。你有可能加載它的'.pryrc'文件嗎? – matt
在它發生的時候,我沒有'.pryrc' – mokayode