Skip to content

Commit c80866b

Browse files
committed
Merge pull request #1 from orzFly/patch-66rpg
bbs.66rpg.com was gone. 我之前测试过。能访问到。兴许哪一天rm.66rpg.com也会gone。
2 parents 1facca8 + e2c306c commit c80866b

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

chapter04.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ <h2 id="eval">eval</h2>
392392
<p>  关于<code>eval</code>方法,苏小脉给出了下面的建议:</p>
393393
<blockquote>
394394
<p>  一般来说,能避免<code>eval</code>就尽量避免,因为<code>eval</code> 有额外的“分析时”开销(将字符串作为源代码进行词法、文法分析),而这个“剖析时”却又是在程序“运行时”进行的。把不需要惰性求值的表达式预先进行及早求值,能避免一些分析时开销。如果可能的话,用<code>instance_exec</code>,或<code>instance_eval</code> 带块的形式,也比直接在字符串上求值好。</p>
395-
<p>——苏小脉在<a href="http://bbs.66rpg.com/thread-165322-1-1.html" target="_blank">如果用这种方式来构造一些复杂的对象呢?</a>上的发言</p>
395+
<p>——苏小脉在<a href="http://rm.66rpg.com/thread-165322-1-1.html" target="_blank">如果用这种方式来构造一些复杂的对象呢?</a>上的发言</p>
396396
</blockquote>
397397
<p>  而关于<code>eval</code>方法的安全性漏洞,Dave Thomas在他的著作Programming Ruby(<a href="http://www.rubycentral.com/pickaxe/taint.html" target="_blank">英文页面</a>)中列举了一个十分有趣的例子:</p>
398398
<blockquote>

src/chapter04.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ puts eval("str + ' Rubyist'") # => "Hello Rubyist"
190190

191191
>   一般来说,能避免`eval`就尽量避免,因为`eval` 有额外的“分析时”开销(将字符串作为源代码进行词法、文法分析),而这个“剖析时”却又是在程序“运行时”进行的。把不需要惰性求值的表达式预先进行及早求值,能避免一些分析时开销。如果可能的话,用`instance_exec`,或`instance_eval` 带块的形式,也比直接在字符串上求值好。
192192
>
193-
> ——苏小脉在[如果用这种方式来构造一些复杂的对象呢?](http://bbs.66rpg.com/thread-165322-1-1.html)上的发言
193+
> ——苏小脉在[如果用这种方式来构造一些复杂的对象呢?](http://rm.66rpg.com/thread-165322-1-1.html)上的发言
194194
195195
  而关于`eval`方法的安全性漏洞,Dave Thomas在他的著作Programming Ruby([英文页面](http://www.rubycentral.com/pickaxe/taint.html))中列举了一个十分有趣的例子:
196196

0 commit comments

Comments
 (0)