Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Array mass assignment
#1
Code:
dim arr( 5 ) as ubyte
arr( 0 ) = { 10, 20, 30 }
arr( 3 ) = { 40, 50, 60 }
print arr( 1 ) 'output should be 20
print arr( 4 ) 'output should be 50
It would be really nice to have, IMO

Preferably it should be able to take variables too:
Code:
dim arr( 5 ) as ubyte
arr( 0 ) = { 10, var1, 30 }
arr( 3 ) = { 40, 50, var2 }
print arr( 1 ) 'output should be 'var1'
print arr( 4 ) 'output should be 50
Reply
#2
You mean like this?
Code:
Dim a(0 to 9) as ubyte => { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }
Which was implemented in .13?
Life is like a box of chocolates', hrm, WTF, no it isn't, more like, 'life is like a steaming pile of horse crap.'
Reply
#3
No, not at compile time.

I mean in "realtime"


Read my post again
Reply
#4
* 1000101 notes your original post said nothing about at compile-time or at run-time.

By the by, it will work at runtime if it can't be resolved at compile time.

I do this for error checking to keep track of which function is currently executed.

ie
Code:
#define _this_proc_ 1
#define _that_proc_ 2

declare sub this_proc ()
declare sub that_proc ()

dim shared CurrentProc as integer

CurrentProc = 0

this_proc
that_proc

End

Sub this_proc ()

   Dim LastProc as integer = CurrentProc
   CurrentProc = _this_proc_

   '' Do stuff

   CurrentProc = LastProc

End sub

Sub that_proc ()

   Dim LastProc as integer = CurrentProc
   CurrentProc = _that_proc_

   '' Do stuff

   CurrentProc = LastProc

End sub

Of cource, my program is a lot more complex which is why I do that, but you get the general idea.

While my example only shows a single variable being auto-assigned at allocation, it still bears proof-of-conciept. Big Grin
Life is like a box of chocolates', hrm, WTF, no it isn't, more like, 'life is like a steaming pile of horse crap.'
Reply
#5
Quote:
Code:
dim arr( 5 ) as ubyte
arr( 0 ) = { 10, 20, 30 }
arr( 3 ) = { 40, 50, 60 }
print arr( 1 ) 'output should be 20
print arr( 4 ) 'output should be 50
It would be really nice to have, IMO

Preferably it should be able to take variables too:
Code:
dim arr( 5 ) as ubyte
arr( 0 ) = { 10, var1, 30 }
arr( 3 ) = { 40, 50, var2 }
print arr( 1 ) 'output should be 'var1'
print arr( 4 ) 'output should be 50

Code:
dim arr( 5 ) as ubyte
arr( 0 ) = { 10, var1, 30 }
arr( 3 ) = { 40, 50, var2 }
print arr( 1 ) 'output should be 'var1'
print arr( 4 ) 'output should be 50

arr ( 0 ) = { arr(3), 55, what+that+arr(5) }

print arr(0) 'should = arr(3) (which is 40)
print arr(1) 'should = 55
print arr(2) 'should = what+that+arr(5) (which is= var2)

Note that I DO NOT assign ALL the elements in the array, and that I specify a starting point where to start assigning from.
Reply
#6
True enough, but your request wasn't specific enough to draw any conclusions from. I was operating on the assumption that you weren't aware of declaration assignments.

Still, in the example you gave, the compiler would end up optimizing that to be a compile time assignment with the unknowns filled with nulls.

But, assuming you were using vairables instead of litterals, then that would have some value. I see what you are getting at, however, you should be more specific in the future ;P
Life is like a box of chocolates', hrm, WTF, no it isn't, more like, 'life is like a steaming pile of horse crap.'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)