Ruby 鲁比:什么';IO和ARGV之间的区别是什么?

Ruby 鲁比:什么';IO和ARGV之间的区别是什么?,ruby,io,argv,Ruby,Io,Argv,我一直试图理解两者之间的区别,但到目前为止,我已经有了一个非常初步的理解。我相信ARGV是IO的一个子集。我知道ARGV在被调用到Ruby脚本中时会返回一个数组,但是IO也会做同样的事情。谁能给我解释一下这个话题,或者给我一个好的解释?我搜索了多个博客,但都没有结果。 谢谢 IO类是Ruby中所有输入和输出的基础。I/O流可以是双工的(即双向的),因此可以使用多个本机操作系统流 本节中的许多示例都使用File类,这是 IO的标准子类。这两类人密切相关。喜欢 文件类,IO中的套接字库子类(例如 T

我一直试图理解两者之间的区别,但到目前为止,我已经有了一个非常初步的理解。我相信ARGV是IO的一个子集。我知道ARGV在被调用到Ruby脚本中时会返回一个数组,但是IO也会做同样的事情。谁能给我解释一下这个话题,或者给我一个好的解释?我搜索了多个博客,但都没有结果。 谢谢

IO类是Ruby中所有输入和输出的基础。I/O流可以是双工的(即双向的),因此可以使用多个本机操作系统流

本节中的许多示例都使用File类,这是 IO的标准子类。这两类人密切相关。喜欢 文件类,IO中的套接字库子类(例如 TCPSocket或UDPSocket)

Kernel#open方法可以为这些对象创建一个IO(或File)对象 参数类型:

普通字符串表示适用于基础文件的文件名 操作系统。以“|”开头的字符串表示子流程。 “|”后面的字符串的其余部分作为进程调用 连接适当的输入/输出通道。一串相等的 到“|-”将创建另一个Ruby实例作为子进程。木卫一可能 可以使用不同的文件模式(只读、只读)和 正确转换的编码。有关这些选项,请参见::新建。看见 Kernel#打开以获取所描述的各种命令格式的详细信息 上面

资料来源:

ARGF是一个流,设计用于处理作为命令行参数或参数提供的文件的脚本中 通过标准输入

传递给脚本的参数存储在ARGV数组中,一个 每个元素的参数。ARGF假定任何不正确的参数 文件名已从ARGV中删除

argv→ ARGV返回ARGV数组,其中包含参数 传递给脚本,每个元素一个

资料来源:

IO类是Ruby中所有输入和输出的基础。I/O流可以是双工的(即双向的),因此可以使用多个本机操作系统流

本节中的许多示例都使用File类,这是 IO的标准子类。这两类人密切相关。喜欢 文件类,IO中的套接字库子类(例如 TCPSocket或UDPSocket)

Kernel#open方法可以为这些对象创建一个IO(或File)对象 参数类型:

普通字符串表示适用于基础文件的文件名 操作系统。以“|”开头的字符串表示子流程。 “|”后面的字符串的其余部分作为进程调用 连接适当的输入/输出通道。一串相等的 到“|-”将创建另一个Ruby实例作为子进程。木卫一可能 可以使用不同的文件模式(只读、只读)和 正确转换的编码。有关这些选项,请参见::新建。看见 Kernel#打开以获取所描述的各种命令格式的详细信息 上面

资料来源:

ARGF是一个流,设计用于处理作为命令行参数或参数提供的文件的脚本中 通过标准输入

传递给脚本的参数存储在ARGV数组中,一个 每个元素的参数。ARGF假定任何不正确的参数 文件名已从ARGV中删除

argv→ ARGV返回ARGV数组,其中包含参数 传递给脚本,每个元素一个

资料来源:

IO类是Ruby中所有输入和输出的基础。I/O流可以是双工的(即双向的),因此可以使用多个本机操作系统流

本节中的许多示例都使用File类,这是 IO的标准子类。这两类人密切相关。喜欢 文件类,IO中的套接字库子类(例如 TCPSocket或UDPSocket)

Kernel#open方法可以为这些对象创建一个IO(或File)对象 参数类型:

普通字符串表示适用于基础文件的文件名 操作系统。以“|”开头的字符串表示子流程。 “|”后面的字符串的其余部分作为进程调用 连接适当的输入/输出通道。一串相等的 到“|-”将创建另一个Ruby实例作为子进程。木卫一可能 可以使用不同的文件模式(只读、只读)和 正确转换的编码。有关这些选项,请参见::新建。看见 Kernel#打开以获取所描述的各种命令格式的详细信息 上面

资料来源:

ARGF是一个流,设计用于处理作为命令行参数或参数提供的文件的脚本中 通过标准输入

传递给脚本的参数存储在ARGV数组中,一个 每个元素的参数。ARGF假定任何不正确的参数 文件名已从ARGV中删除

argv→ ARGV返回ARGV数组,其中包含参数 传递给脚本,每个元素一个

资料来源:

IO类是Ruby中所有输入和输出的基础。I/O流可以是双工的(即双向的),因此可以使用多个本机操作系统流

本节中的许多示例都使用File类,这是 IO的标准子类。这两类人密切相关。喜欢 文件类,IO中的套接字库子类(例如 TCPSocket或UDPSocket)

Kernel#open方法可以为这些对象创建一个IO(或File)对象 参数类型:

普通字符串表示适用于基础文件的文件名 操作系统。以“|”开头的字符串表示子流程。 “|”后面的字符串的其余部分作为进程调用 连接适当的输入/输出通道。一串相等的
> ARGV.class
=> Array
$ cat pancakes.rb 
puts ARGV.inspect

$ ruby pancakes.rb -where is house
["-where", "is", "house"]
$ your_script some_file
$ some_command | your_script