InterSystems IRIS %Library.Prompt 类终端交互全指南

作者:API传播员 · 2025-09-30 · 阅读时间:3分钟

你是否曾经好奇,像“^DATABASE”这样的命令是如何在终端中与用户交互的?或者,你是否需要在编写自动化例程时,直接从终端获取用户输入?幸运的是,InterSystems IRIS 提供了一个简单而强大的工具——%Library.[Prompt](https://prompts.explinks.com/)类,能够帮助开发者轻松实现终端交互功能。


字符串输入

在需要用户输入字符串信息时,例如文件路径或命名空间,可以使用以下代码:

set status = ##class(%Library.Prompt).GetString("Input filepath:", .path)

上述代码会提示用户输入一个字符串,输入的内容可以是文件路径、命名空间等。用户的输入结果将存储在变量path中。


数字输入

如果需要用户输入数字,例如 CPU 核心数量,可以使用以下代码:

set status = ##class(%Library.Prompt).GetNumber("Input number of cores:", .number)

%Library.Prompt类会自动验证输入是否为数字。此外,还可以通过指定最小值和最大值来限制输入范围,例如:

set status = ##class(%Library.Prompt).GetNumber("Input number of cores (1-8):", .number, 1, 8)

这段代码会确保用户输入的数字在 1 到 8 之间。


默认选项

在某些情况下,您可能希望为用户提供默认选项。例如,如果需要默认答案为“是”,可以预先设置响应变量:

set answer = 1
set status = ##class(%Library.Prompt).GetYesNo("Accept default settings?", .answer)

在这里,如果用户没有提供输入,变量answer的默认值将为 1(表示“是”)。


菜单选择

对于更复杂的交互场景,例如需要用户从菜单中选择选项,可以使用GetArray()GetMenu()方法。以下是一个示例:

#include %syPrompt
set options(1) = "Option 1"
set options(2) = "Option 2"
do ##class(%Library.Prompt).GetArray("Select deployment type:", .result, .options, , , , $$$InitialDisplayMask)

此代码会向用户展示一个选项列表,用户可以从中选择。$$$InitialDisplayMask标志用于在用户选择之前显示菜单。


总结

通过使用%Library.Prompt类,开发者可以轻松实现终端交互功能,无论是简单的字符串输入、数字输入,还是更复杂的菜单选择。这些工具极大地简化了与用户的交互逻辑,使得开发更加高效。如果您想了解更多详细信息,请参考 InterSystems IRIS 的官方文档。


原文链接: https://community.intersystems.com/post/using-libraryprompt-iris-terminal-interaction