Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 插座是否与撬杆捆绑?_Ruby_Sockets_Irb_Pry - Fatal编程技术网

Ruby 插座是否与撬杆捆绑?

Ruby 插座是否与撬杆捆绑?,ruby,sockets,irb,pry,Ruby,Sockets,Irb,Pry,我正在学习Ruby中的socket。我在撬会话中尝试了require'socket',结果得到false。在经历了很多麻烦之后,我决定使用irb,但效果很好 后来,我在一个pry会话中运行了TCPServer.new('localhost',2000),而不需要socket,它工作了 我很好奇为什么会这样。是不是插座已经是pry的一部分了?我查看了Pry的源代码,但没有找到它 Ruby 2.3.0上的Pry版本0.10.3Yessocket在启动时加载到Pry中。而irb最初并不加载它。您可以随

我正在学习Ruby中的socket。我在撬会话中尝试了
require'socket'
,结果得到
false
。在经历了很多麻烦之后,我决定使用
irb
,但效果很好

后来,我在一个pry会话中运行了
TCPServer.new('localhost',2000)
,而不需要
socket
,它工作了

我很好奇为什么会这样。是不是插座已经是pry的一部分了?我查看了Pry的源代码,但没有找到它


Ruby 2.3.0上的Pry版本0.10.3

Yes
socket
在启动时加载到Pry中。而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时默认不加载。你有一个
.pryrc
文件可能正在加载它吗?在它发生的时候,我没有一个
.pryrc
你从哪里得到Pry自动加载
套接字的?对我来说不是,源代码中唯一提到的“socket”似乎是一条注释和一个changelog条目。@matt true Github存储库并不直接
需要“socket”
,但它确实加载了其他gem,这很可能是罪魁祸首。你有什么版本的Pry
pry-v
0.10.3
,当前最新版本。我没有任何插件,也许你和mokayode都有一个需要
socket
的插件?你从
pry--plugins
@matt nope,
已安装的插件--
中得到了什么。我没有一个
.pryrc
文件。在Pry Github repo中,我确实看到了几处提到,其中有一个,有一个。