You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dyalog APL:能否实现内联编辑Object类Name字段的函数?

Dyalog APL:实现_People.Name的内联编辑输出函数

可以实现需求,以下是基于你提到的Object类的具体解决方案:

前提假设

假设你已通过原问题中的方法创建了_People对象实例,示例代码如下:

∇ r←NewObject fields values
  r←⎕NEW 'Object'
  :For i :In ⍳≢fields
      r.(⍎fields[i])←values[i]
  :EndFor
∇

_People ← NewObject 'Name Age' ('Alice' 30)

内联编辑函数实现

∇ EditPeopleName
  ⍝ 输出_People.Name并支持内联编辑
  currentName ← _People.Name
  ⍝ 输出当前值,不换行
  ⎕←'当前姓名: ',currentName
  ⍝ 用ANSI转义序列将光标移至当前姓名的起始位置
  ⎕←⎕UCS 27,'[',(11+≢currentName),'D'
  ⍝ 调用⎕TSI获取内联输入,默认值为原姓名
  newName ← ⎕TSI currentName
  ⍝ 非空输入则更新姓名
  :If newName ≠ ''
      _People.Name ← newName
  :EndIf
  ⎕←'更新后的姓名: ',_People.Name
∇

功能说明

  • ⎕TSI是Dyalog APL的终端字符串输入函数,支持在当前光标位置直接编辑默认值,无需换行输入,完全匹配你的需求。
  • ANSI转义序列用于调整光标位置,让编辑操作看起来是直接修改原输出内容,优化交互体验(该序列在支持ANSI的终端和Dyalog RIDE环境中生效)。
  • 若用户输入为空,将保留原姓名值,避免误清空。

内容的提问来源于stack exchange,提问作者конструктор

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 10:53:24