Ruby 中允许使用“p *1..10”的功能是什么? 打印出数字1-10?

发布于 2024-07-16 09:39:48 字数 88 浏览 9 评论 0原文

require 'pp'

p *1..10

这会打印出 1-10。 为什么这么简洁? 你还能用它做什么?

require 'pp'

p *1..10

This prints out 1-10. Why is this so concise? And what else can you do with it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一抹苦笑 2024-07-23 09:39:48

它是“splat”运算符。 它可用于分解数组和范围并在赋值期间收集值。

这里收集了赋值中的值:

a, *b = 1,2,3,4

=> a = 1
   b = [2,3,4]

在本例中,内部数组([3,4])中的值被分解并收集到包含数组中:

a = [1,2, *[3,4]]

=> a = [1,2,3,4]

您可以定义收集参数的函数放入数组中:

def foo(*args)
  p args
end

foo(1,2,"three",4)

=> [1,2,"three",4]

It is "the splat" operator. It can be used to explode arrays and ranges and collect values during assignment.

Here the values in an assignment are collected:

a, *b = 1,2,3,4

=> a = 1
   b = [2,3,4]

In this example the values in the inner array (the [3,4] one) is exploded and collected to the containing array:

a = [1,2, *[3,4]]

=> a = [1,2,3,4]

You can define functions that collect arguments into an array:

def foo(*args)
  p args
end

foo(1,2,"three",4)

=> [1,2,"three",4]
喜你已久 2024-07-23 09:39:48

好吧:

  • require pp 导入漂亮打印功能
  • p 是一种带有可变参数的漂亮打印方法,它漂亮地打印每个参数
  • * 意思是“将参数扩展为 varargs”,而不是将其视为单个参数
  • 1..10 是 Ruby 中的范围序列语法

这是否充分解释了它? 如果没有,请详细说明哪一点令人困惑。

Well:

  • require pp imports the pretty-printing functionality
  • p is a pretty-printing method with varargs, which pretty-prints each argument
  • * means "expand the argument into varargs" instead of treating it as a single argument
  • 1..10 is range sequence syntax in Ruby

Does that explain it adequately? If not, please elaborate on which bit is confusing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文