[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
nested _next for same object class, confusion
[Thread Prev] | [Thread Next]
- Subject: nested _next for same object class, confusion
- From: Brian G <brian@xxxxxxxxxxxxxxxx>
- Date: Thu, 30 May 2024 11:15:09 -0700
- To: GambasList <user@xxxxxxxxxxxxxxxxxxxxxx>
I have a question, how to implement nested key value for a class with a _next function where the key is not equal to the enum.index value.
I include a simple script to demonstrate the issue. Which happened to me by accident.
After the nested _next, the key is of course equal to the value of the last nested cycle of the inner most next.
Here a script(extremely simplified) that shows the issue I am having. Maybe I am not seeing the simple answer.
---------------------------------------------------------------------------------------- #!/usr/bin/env gbs3 ' Gambas Script File Created 05/30/2024 08:36:16 Public Sub main() Dim MyHendrix As New MyNext(6) Print "begin" For Each v As Variant In MyHendrix Print "Outer Value="; v, "Key="; MyHendrix.key If v = MyHendrix.count / 2 Then For Each vv As Variant In MyHendrix Print " Inner Value="; vv, "Key="; MyHendrix.key Next Print " Outer Value="; v, "Key="; MyHendrix.key Endif Next Print "end" Quit 0 Catch Error "Script Error >";; error.text & "\n" & error.where End Class Mynext Private $key As Variant Private hendrix As New Variant[] Property Read key As Variant Property Read Count As Integer Private Function key_read() As Variant Return $key End Public Sub _new(count As Integer) For i As Integer = 0 To count - 1 hendrix.push(i) Next End Private Function count_read() As Integer Return hendrix.count End Public Sub _next() As Variant If hendrix.count = 0 Then enum.stop Return Endif If IsNull(enum.index) Then enum.index = 0 $key = 1 Return hendrix[enum.index] Else Inc enum.index If enum.index > hendrix.max Then enum.stop Return Else $key = enum.index + 1 Endif EndifReturn hendrix[enum.index]
End End Class ---------------------------------------------------------------------------- Outputs begin Outer Value = 0 Key = 1 Outer Value = 1 Key = 2 Outer Value = 2 Key = 3 Outer Value = 3 Key = 4 Inner Value = 0 Key = 1 Inner Value = 1 Key = 2 Inner Value = 2 Key = 3 Inner Value = 3 Key = 4 Inner Value = 4 Key = 5 Inner Value = 5 Key = 6 Outer Value = 3 Key = 6 Outer Value = 4 Key = 5 Outer Value = 5 Key = 6 End -- ~~~~ Brian
Attachment:
OpenPGP_0x78BFB26402F48419.asc
Description: OpenPGP public key
Attachment:
OpenPGP_signature.asc
Description: OpenPGP digital signature
Re: nested _next for same object class, confusion | Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx> |