Ruby到Python语法混乱
我正在尝试将某人的Ruby代码转换为Python代码。最初的开发者已经不在了,我也不认识Ruby。他的大部分代码都很容易理解,但下面的一些语法让我大吃一惊 例如:Ruby到Python语法混乱,python,ruby,syntax,Python,Ruby,Syntax,我正在尝试将某人的Ruby代码转换为Python代码。最初的开发者已经不在了,我也不认识Ruby。他的大部分代码都很容易理解,但下面的一些语法让我大吃一惊 例如: myTable = '' myTable << [ 0, 1, 0, 0, 0, 300].pack('vvvvvv') myTable [40, 4] = [41310005 - 5].pack('V') myTable='
myTable = ''
myTable << [ 0, 1, 0, 0, 0, 300].pack('vvvvvv')
myTable [40, 4] = [41310005 - 5].pack('V')
myTable=''
myTable关于第二行,您错了,但奇怪的是,您是对的,它类似于struct.pack
myTable
是一个字符串Array#pack()
返回一个压缩数据字符串(很像struct.pack
),而string#否,myTable是一个字符串(它被分配了一个字符串文本)。请查看有关的文档。它将数组转换为二进制序列的字符串表示形式v
是“短、小尾端字节顺序”的指令,v
是“长、小尾端字节顺序”
当发送到字符串
对象时,充当串联。但是,由于字符串在该点之前为空,myTable
可以立即初始化为[0,1,0,0,0,300].pack('vvv')
将索引m
中的子字符串替换为m+n
,以便理解正在运行的代码,您可以使用“irb”获得交互式Ruby shell。如果你在那里输入代码,它就会被动态执行。使用对象上的inspect()可以经常看到对象发生了什么。因此,在您的情况下,在每一行之后调用myTable.inspect将向您展示更多关于正在发生的事情的信息。谢谢@mrduclaw:顺便说一句:虽然是Ruby官方文档网站,但它的导航也非常难看和混乱。这是新的热点。