FennEdge Learn · 编程

DAS Trader Advanced Hotkey Script Course

读懂代码,检查状态,验证结果。 从语言与数据结构,到订单对象、事件工作流和完整项目,系统学习 Advanced Script 编程。

按约 1046 分钟安排,已包含阅读、算例和每课练习;实际用时因人而异。

36节课程≈1046预计分钟—登录后保存进度
04
第 4/36 课 · 约 22 分钟

DAS 脚本交互输入与参数校验

用 Input 建立输入契约,处理空值、取消与参数边界。

输入框是程序边界

前置知识:变量与条件。可复用脚本应允许使用者填写参数,而不是每次改代码正文。手册同时展示 Input() 和 Input(Title, Message),但没有完整规定取消操作与类型转换。把收集、验证、使用分成三个步骤,本课只显示文本。

先建立可观察的契约

Advanced Script · 手动输入与显示。本例接受非空标签,不解释为代码。空字符串处理与尚待核对的取消返回值分开。

完整的文本输入例子

$feInputReady = 0;
$feInputLabel = "";
$feInputLabel = Input("FE observation", "Enter an observation label");
if ($feInputLabel == "") {
    MsgBox("No label entered");
    return;
}
$feInputReady = 1;
MsgBox("Label: ", $feInputLabel);

逐步推演

打开输入框之前先清除 ready,防止上一轮成功状态残留。输入内容与状态分开保存,检查通过后才设为 1。此例没有去除空格,因此只有空格的字符串仍可能通过。不要借用 JavaScript 的 trim()、Number()、isNaN() 或正则表达式来补一个 DAS 未确认的函数;需要规范化股票代码时,单独确认该能力。

数值、默认值与取消

输入框返回 "25" 本身不能证明已经得到可靠的数值。先在实际 build 测试整数、小数、零、负数、空格、字母、取消,再决定数值解析方式。已记录的双参数签名不代表存在第三个默认值参数。默认值放在独立配置中,并定义何时使用。不要用 Exec(Input()) 代替参数输入,那会把数据入口变成任意 DAS 代码入口。

练习与参考解答

设计带默认标签 "Untitled" 的输入流程,分别列出空字符串、普通标签、空格的结果。参考解答:只把已确认的空字符串替换为默认标签;其他文本在没有规范化规则时保留原样。取消行为未确认时不能将其当成功输入。后续模块检查 ready,不能复用上一轮输出。