在线求教!求教 Delphi 大佬,需要将下面的代码转成 Go

2021-04-21 17:24:44 +08:00
 xzhuz

请教 Delphi 大佬,需要将下面的代码转成 Go,但是由于不了解相关语法,是在难以下手。请问有没有大佬会,请赐教!!!!在线等,急~~~~~真急

procedure makeMMbyts(var bb: TBytes); var b1: TBytes; i1, i2: integer; begin b1 := copy(bb); i1 := Length(b1); setlength(b1, i1 + i1); for i2 := i1 to i1 + i1 - 1 do begin b1[i2] := random(255); b1[i2 - i1] := ((b1[i2 - i1] xor b1[i2]) and $FF); end; i1 := Length(b1); setlength(b1, i1 + i1); for i2 := i1 to i1 + i1 - 1 do begin b1[i2] := random(255); b1[i2 - i1] := ((b1[i2 - i1] xor b1[i2]) and $FF); end; bb := copy(b1); setlength(b1, 0); end;

682 次点击
所在节点    问与答
2 条回复
domodomo
2021-04-21 19:30:02 +08:00
procedure makeMMbyts(var bb: TBytes); //申明一个函数,传入一个 byte 数组参数
var
b1: TBytes;
i1, i2: integer; //以上是本地变量申明
begin //函数开始
b1 := copy(bb); //把数组 bb 复制给 b1
i1 := Length(b1); //把 b1 的长度赋给 i1
setlength(b1, i1 + i1); //b1 数组长度翻倍

for i2 := i1 to i1 + i1 - 1 do//开始滤遍 b1 数组
begin
b1[i2] := random(255);//给 b1[i2]随机一个 255 以内的数值
b1[i2 - i1] := ((b1[i2 - i1] xor b1[i2]) and $FF); //b1[i2 - i1] = (b1[i2 - i1] ^ b1[i2]) & 0xff
end;

//再来一次
i1 := Length(b1);
setlength(b1, i1 + i1);

for i2 := i1 to i1 + i1 - 1 do
begin
b1[i2] := random(255);
b1[i2 - i1] := ((b1[i2 - i1] xor b1[i2]) and $FF);
end;

bb := copy(b1); //把计算结果 b1 复制给 bb
setlength(b1, 0); //b1 长度设为 0
end; //函数结束

这段代码写得真是……酸爽
liuhouer
2021-04-22 08:38:38 +08:00
pascal 语法看着很顺眼,以前贼喜欢,可惜没落了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/772236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX