Ruby中`STDIN`和`$stdin`究竟有何本质区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计328个文字,预计阅读时间需要2分钟。
在编程中,`STDIN` 和 `$stdin` 通常指的是标准输入流,但它们之间的区别可能取决于编程语言或环境。
在 Ruby 中,`STDIN` 和 `$stdin` 实际上是相同的,都是指向同一个标准输入流对象。你可以在 irb(Interactive Ruby)中设置和恢复它们:
rubySTDIN=$stdin # 将 STDIN 指向 $stdin此后,STDIN 和 $stdin 是相同的
从 Ruby 的全局变量 `globals` 来看:
STDIN=> The standard input. The default value is $stdin.
这里的描述表明 `STDIN` 是一个全局变量,默认值是 `$stdin`。因此,在 Ruby 中,`STDIN` 和 `$stdin` 是同义的,没有本质的区别。它们都是用于读取标准输入流的对象。
我想知道STDIN和$stdin之间是否有任何真正的区别.我在irb做:STDIN == $stdin
并恢复正常.它们只是两个同名的名字吗?还是有一些区别?
从 Ruby globals开始:STDIN
The standard input. The default value for $stdin.
它们默认是相同的对象.
[1] pry(main)> $stdin.object_id => 13338048 [2] pry(main)> STDIN.object_id => 13338048 [3] pry(main)> $stdin.object_id == STDIN.object_id => true
正如@shivam评论的那样,$stdin是一个全局变量,它可能被分配给不同的东西,而STDIN是一个常量.
本文共计328个文字,预计阅读时间需要2分钟。
在编程中,`STDIN` 和 `$stdin` 通常指的是标准输入流,但它们之间的区别可能取决于编程语言或环境。
在 Ruby 中,`STDIN` 和 `$stdin` 实际上是相同的,都是指向同一个标准输入流对象。你可以在 irb(Interactive Ruby)中设置和恢复它们:
rubySTDIN=$stdin # 将 STDIN 指向 $stdin此后,STDIN 和 $stdin 是相同的
从 Ruby 的全局变量 `globals` 来看:
STDIN=> The standard input. The default value is $stdin.
这里的描述表明 `STDIN` 是一个全局变量,默认值是 `$stdin`。因此,在 Ruby 中,`STDIN` 和 `$stdin` 是同义的,没有本质的区别。它们都是用于读取标准输入流的对象。
我想知道STDIN和$stdin之间是否有任何真正的区别.我在irb做:STDIN == $stdin
并恢复正常.它们只是两个同名的名字吗?还是有一些区别?
从 Ruby globals开始:STDIN
The standard input. The default value for $stdin.
它们默认是相同的对象.
[1] pry(main)> $stdin.object_id => 13338048 [2] pry(main)> STDIN.object_id => 13338048 [3] pry(main)> $stdin.object_id == STDIN.object_id => true
正如@shivam评论的那样,$stdin是一个全局变量,它可能被分配给不同的东西,而STDIN是一个常量.

