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

LibreOffice Basic中是否有Bash的$@等价语法传递函数所有参数?

在LibreOffice Basic中模拟Bash的$@功能(不修改函数声明)

LibreOffice Basic没有直接对应Bash $@的语法,但可以通过内置的Args()数组结合函数已声明的参数,实现获取所有传递参数的需求,且无需修改Function prova(a, b, c)这一行。

核心原理

LibreOffice Basic的Args()是一个内置变体数组,存储了当前函数/过程接收到的所有参数,下标从1开始:

  • 已声明的参数a对应Args(1),b对应Args(2),c对应Args(3)
  • 如果调用函数时传递了超过3个参数,额外参数会依次存入Args(4)、Args(5)等位置

实现代码

Function prova(a, b, c)
    ' 初始化数组存储所有参数,先包含已声明的a、b、c
    Dim allArgs() As Variant
    ReDim allArgs(0 To 2)
    allArgs(0) = a
    allArgs(1) = b
    allArgs(2) = c
    
    ' 检查是否存在额外传递的参数
    Dim totalArgs As Integer
    totalArgs = UBound(Args())
    If totalArgs > 3 Then
        ' 扩展数组容量,容纳额外参数
        ReDim Preserve allArgs(0 To totalArgs - 1)
        Dim i As Integer
        For i = 4 To totalArgs
            allArgs(i - 1) = Args(i)
        Next i
    End If
    
    ' 示例:将所有参数用逗号拼接后返回,可根据需求修改逻辑
    prova = Join(allArgs, ", ")
End Function

使用说明

  • 当调用prova(1, 2, 3)时,返回1, 2, 3
  • 当调用prova("x", "y", "z", 4, 5)时,返回x, y, z, 4, 5
  • 你可以直接使用allArgs数组来遍历、处理所有参数,和Bash中$@的用法逻辑一致

内容的提问来源于stack exchange,提问作者Mario Palumbo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:04:59