在如rails这样的开源库中,我们常常见到这样的一类写法:class_eval令人困惑不已。不过这里的知识点非常简单,只要掌握了heredoc与eval的用法,就很好理解这里的代码了。heredocheredoc是一种定义多行字符串的方法,同时保持原始缩进和格式。相当于JavaScript中的``。heredoc以开头,跟上一个随意的单词,最后再以这个字符串结束:multi_str=多行字符串会保留所有的缩进,并且在尾部会带上\n换行符。对于换行符,可以使用chomp来去除:。如果你在缩进的情况下声明heredoc,可能会变成这样,十分丑陋:multi_str=如果保持缩进:multi_str