THOUGH,荷兰学者 E.W.Dijkstra 提出了程序设计中常用的 GOTO 语句的三大危害:破坏了程序的静动一致性;程序不易测试;限制了代码优化
哪家语言教程还在推 goto 语句,拉走
不需要宏,ruby 本身就有 callcc https://ruby-doc.org/core-3.0.0/Continuation.html ,當然你要宏也是可以的,我指的是先 parse 再改 ast 的宏
catch/throw
楼上说的对。Roda 里面就用了很多 catch、throw
ruby 老爹的书上有例子啊,模拟 basic
$lines = {} def line(symbol) callcc {|c| $lines[symbol] = c} end def goto(symbol) $lines[symbol].call end i = 1 line 10 puts i += 1 goto 10 if i < 5 line 20 puts i -= 1 goto 20 if i > 0
ruby 老爹?哈哈哈
callcc 我都没理解意思
lambda, eval ,proc , 元编,这些功能已经很强大了