我可以从LotusScript函数返回一个List吗?

mol*_*ses 5 lotus-notes lotusscript return-value

我想从LotusScript中的函数返回一个List.

例如.

Function myfunc() List As Variant
    Dim mylist List As Variant
    mylist("one") = 1
    mylist("two") = "2"
    myfunc = mylist
End Function

Dim mylist List As Variant
mylist = myfunc()
Run Code Online (Sandbox Code Playgroud)

这可能吗?

如果是这样,那么正确的语法是什么?

mol*_*ses 8

您似乎无法从函数返回List.

您可以轻松地将它包装在一个类中,然后返回该类.

例如.

Class WrappedList
    Public list List As Variant
End Class

Function myfunc() As WrappedList
    Dim mylist As New WrappedList
    mylist.list("one") = 1
    mylist.list("two") = "2"
    Set myfunc = mylist
End Function
Run Code Online (Sandbox Code Playgroud)

答案在这里找到:LotusScript的List bug再次出现


pax*_*blo 2

这对我来说效果很好。我已将一个值设置为字符串,另一个值设置为整数,以便您可以看到这些变体的行为。

Sub Initialize
    Dim mylist List As Variant
    Call myfunc(mylist)
    Msgbox "un  = " + mylist("one")
    Msgbox "deux = " + cstr(mylist("two"))
End Sub

Sub myfunc(mylist List As Variant)
    mylist("one") = "1"
    mylist("two") = 2
End Sub
Run Code Online (Sandbox Code Playgroud)