xzhuz
V2EX  ›  问与答

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

  •  
  •   xzhuz · Apr 21, 2021 · 1399 views
    This topic created in 1853 days ago, the information mentioned may be changed or developed.

    请教 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;

    2 replies    2021-04-22 08:38:38 +08:00
    domodomo
        1
    domodomo  
       Apr 21, 2021   ❤️ 1
    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
        2
    liuhouer  
       Apr 22, 2021 via iPhone
    pascal 语法看着很顺眼,以前贼喜欢,可惜没落了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1125 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:19 · PVG 02:19 · LAX 11:19 · JFK 14:19
    ♥ Do have faith in what you're doing.