REPL通俗的理解什么?

“读取-求值-输出”循环(英语:Read-Eval-Print Loop,简称REPL)是一个简单的,交互式的编程环境

请问,REPL的通俗理解是什么?还有其他什么编程环境是和它相对应的?(不希望太过术语化的回答)

阅读 11.7k
8 个回答

就像一个计算器,用户输入语句,计算器就给出结果,用户看到结果又继续输入新的语句,如此反复。

可以想象成类似Swift的Playground的东西
会执行你输入的每行代码并输出结果

CMD 就是,例如:

del abc.txt

就是读取命令, 求出值(执行命令),输出结果(删除文件).

个人见解.

简单来说Python的REPL就是IPython,JavaScript的REPL就是Node,就是直接在终端里定义函数,编写类,调用库,显示结果。

shell算不算? MySQL的终端算不算? Chrome的Console算不算? Spark的spark-shell算不算? ……很多系统都提供这种工具呀,写代码的人一般都会接触到

REPL其实就是编程语言可交互的shell,动态脚本语言基本都有,编译型语言不好实现,包括伪编译的Java,现在还没有.下面是Ubuntu上PHP内置的REPL(Interactive shell):
200259_cQ3t_561214.png

php -a 进入Interactive shell
php > $中国 = '中华人民共和国';
php > echo $中国;
php > echo mb_strlen($中国, 'UTF-8'); //输出7,正确.
php > echo strlen($中国); //输出21,错误.
一般Linux终端编码采用的是UTF-8,执行locale或echo $LANG可见本地语言环境.

如果是自己编译PHP,在configure加入参数--with-readline即可获得Interactive shell支持.

通俗讲,如果你用过oracle,那么sqlpus就是repl,如果你用redis那么命令行就是repl,如果你用过Linux,那么shell就是repl!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题