Flutter交互式编程环境插件repl的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter交互式编程环境插件repl的使用

A REPL for Dart.

这个包不再被维护。请查看 https://pub.dev/packages/interactive 获取一个功能更强大且易于使用的Dart REPL。

#


Prior art

基于早期版本的 Dart REPL概念验证环境,来自Andreas Kirsch的一系列文章 Dart REPL演进Poc,以及Dart SDK测试中的一个示例 vm_service_tester.dart,还有recharge包


Features

  • ✅ MVP(最小可行产品)支持表达式求值
  • ✅ 使用BlackHC的工作代码来解析输入的语句与表达式
  • ✅ 使用cli_repl以改善REPL的人机工程学
  • ✅ 使用标准的pub activate运行包的二进制文件而不是脚本
  • ✅ 改善了使用文档
  • ✅ 支持热重载并使用草稿文件
  • ❌ ?? 支持内置包导入
  • ❌ ?? 支持任意包导入
  • ❌ ?? 使用独立隔离区的草稿文件

?? - 不清楚这是否是一个可行的方法


Usage

要安装该REPL,可以使用以下命令:

dart pub global activate repl

然后只要将pub系统缓存添加到路径中,就可以通过运行drepl来使用它。


Supported features

目前你可以使用表达式和语句,还有一些内置功能也被支持(详见下文),已经可以通过REPL完成一些有用的事情。

例如,你可以像JavaScript的IIFE一样操作:

> (){final data = ['this', 'is', 'a', 'test']; for(int i = 0; i < data.length; i++) print(data[i]); }()

当然,这个例子有点牵强,你也可以这样做:

> ['this', 'is', 'a', 'test'].forEach((x) => print(x))

一些语句也是可能的,例如:

> int sqr(int a) => a*a;

> sqr(5)
> 25
Built-in’s
  • print() - 打印到输出
  • reload() - 触发热重载(目前效果不佳)
Editing, History, Shortcuts

请参阅cli_repl包文档了解支持的快捷键。


Development

克隆此仓库后,在项目的顶层目录运行以下命令:

dart bin/main.dart

Future plans

一个更强大的实现路线可能是使用Dart嵌入API,或许通过FFI避免过多的C/C++开发,假设通过FFI让DartVM可以调用自身嵌入API?


Contributing

所有贡献:PR、错误报告、功能请求、文档都欢迎。
贡献指南:TODO。


示例代码

以下是一个完整的示例,展示如何使用repl插件进行交互式编程:

// 启动drepl插件
dart pub global activate repl
drepl

// 在REPL中执行以下代码
> int add(int a, int b) => a + b;

> add(3, 5)
> 8

> List<int> numbers = [1, 2, 3, 4];

> numbers.forEach((num) => print(num));
1
2
3
4

> String greet(String name) {
... return "Hello, $name!";
... }

> greet("World")
> Hello, World!

更多关于Flutter交互式编程环境插件repl的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter交互式编程环境插件repl的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,repl(Read-Eval-Print Loop)是一种交互式编程环境,允许开发者实时编写和执行代码。虽然Flutter本身并没有内置的REPL工具,但你可以通过一些插件或工具来实现类似的功能。

1. 使用 flutter_repl 插件

flutter_repl 是一个Flutter插件,它提供了一个交互式的REPL环境,允许你在Flutter应用中实时执行Dart代码。

安装 flutter_repl

  1. pubspec.yaml 文件中添加依赖:

    dependencies:
      flutter_repl: ^0.1.0
  2. 运行 flutter pub get 来安装依赖。

使用 flutter_repl

在你的Flutter应用中,你可以通过以下方式使用 flutter_repl

import 'package:flutter/material.dart';
import 'package:flutter_repl/flutter_repl.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter REPL Example'),
        ),
        body: ReplWidget(), // 使用 ReplWidget 来启动 REPL
      ),
    );
  }
}

ReplWidget 提供了一个交互式的命令行界面,你可以在其中输入Dart代码并立即看到结果。

2. 使用 DartPad

DartPad 是一个在线的Dart编程环境,支持Flutter。虽然它不是Flutter应用的一部分,但它提供了一个非常方便的REPL环境,允许你实时编写和测试Dart代码。

访问 DartPad 并选择Flutter模式,你就可以开始编写和运行Flutter代码了。

3. 使用 flutter console

Flutter SDK 提供了一个命令行工具 flutter console,它允许你在命令行中直接与Flutter应用进行交互。虽然它不是一个完整的REPL环境,但它可以用于调试和测试。

flutter console

4. 使用 dart 命令行工具

Dart SDK 提供了一个 dart 命令行工具,它可以直接启动一个Dart REPL环境。虽然它不直接支持Flutter,但你可以在其中编写和测试Dart代码。

dart
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!