红宝石的目的或文件是什么?

时间:2010-10-29 15:49:42

标签: ruby heredoc

我在这里阅读了“Ruby编程语言”一书中的文档,并且不明白这里文档的目的是什么,以及何时将它用于生产代码。如果有人能够解释并提供一些使用示例,我会很高兴。

的问候,

1 个答案:

答案 0 :(得分:8)

支持它们的任何语言中,heredoc是制作大字符串文字的便捷方式。

采取以下设计的Ruby脚本,它带有你的名字并输出一个C程序的源代码,告诉你你好:

#!/usr/bin/env ruby
name = $*[0]

unless name
  $stderr.puts "Please supply a name as the first argument to the program"
  exit 1
end

source = <<EOF
#include <stdio.h>

int main()
{
    puts("Hello, #{name}!");
    return 0;
}
EOF

puts source

除了heredoc之外,制作源代码的另一个选择是逐行指定它,这变得乏味且可能容易出错(特别是当你有嵌入的引号时)。