不明白一点代码RUBY = [*?a ..?z]

时间:2017-07-31 15:09:16

标签: ruby

几年前我发现了这段代码。 我理解这段代码的作用但不知道如何。 任何人都可以解释一下*?在做什么吗?我以前没见过这样的用法。

myarr = [*?a..?z]       #generates an array of strings for each letter a to z
myarr = [*?a..?z] + [*?0..?9] # array of strings a-z and 0-9

1 个答案:

答案 0 :(得分:4)

var book = db.Books.Single(d => d.BookId == id); this.Title = book.Title; this.PageCount = book.PageCount; ... 只是一个字符文字语法,它曾经在ruby中具有特殊含义< 1.9,但现在?与执行?a

相同

然后"a"正在创建Range..只会将其展开到参数列表中,* [对将其转换为数组。< / p>

希望我的google-fu足以获得一些不错的文档链接或解释,但搜索这些链接非常困难。

已更新:]实际上与前面提到的?a而非"a"相同。要查看此运行(留下IRB标签以帮助说明正在发生的事情):

'a'