=>是什么意思?操作员在Rake任务中?

时间:2015-06-18 11:39:13

标签: ruby

我是Ruby的新手,我正在尝试理解现有的Ruby代码。以下是代码段:

 file File.join("ext", "abc") => ["ext/pqr"] do
      puts "In"
      #some more content
 end

我从文档中了解到File.join将生成路径“ext / abc”。但是“=>”是什么这里的运营商呢?什么时候执行“执行”的主体?

1 个答案:

答案 0 :(得分:1)

=>用于在Ruby中的Hash中定义键/值项。

2.1.5 :002 > hash = { :foo => 1 }
 => {:foo=>1}

在您的特定情况下,File.join("ext", "abc")(表示文件系统上的路径的String)的结果成为哈希项的键,其中值是数组。

file "ext/abc" => ["ext/pqr"] do
  puts "In"
  #some more content
end
file中的

rake用于定义file task。 Hash中的数组表示文件依赖项数组。

换句话说,您告诉rake执行某些操作以创建文件File.join("ext", "abc"),但在执行任务之前(由do/end块中的Ruby代码表示必须执行与数组中定义的文件匹配的所有任务,只要它们还不存在。

您可以在official Rake documentation

中找到有关文件任务的更多信息