I’m trying to convert someone’s Ruby code into my Python code. The originally developer is no longer with us and I don’t know Ruby. Most of his code is easy enough to follow, but some of the following syntax is tripping me up.
Example:
myTable = ''
myTable << [ 0, 1, 0, 0, 0, 300].pack('vvvvvv')
myTable [40, 4] = [41310005 - 5].pack('V')
1) Am I correct to assume that after the 2nd line, myTable is going to hold an array of 6 values specified in the []’s? And is that .pack() similar to Python’s struct.pack ?
2) After the third line, is the value on the right going to be stored at position 40 in the array and be 4 bytes long? Is the -5 in the []’s just him being fun or does that hold some special significance?
You’re wrong about the second line, though strangely you’re right that it’s similar to
struct.pack.myTableis a string.Array#pack()returns a string of the packed data (much likestruct.pack), andString#<<appends a string to the receiving string. The third line sets 4 bytes at index 40 to be the result of[41310000].pack('V').