Pascal 中有类似 Rust 的元组吗?

Are there Rust-like tuples in pascal?

Rust 的元组允许一个匿名的、打包的、堆栈分配的数据结构来保存多个值。

示例:

let (a, b) = returns_tuple(); // fn returns_tuple() -> (i32, String);

在(免费的)pascal 中,我想我会使用命名的记录类型来完成它,但它不会让我解构,所以我需要一个单独的变量。

type
  Tuple = packed record
    a: integer;
    b: string;
  end;

var
  a: integer;
  b: string;
  t: tuple;
  
function returns_tuple (): Tuple;
{ function body ommited }

begin
  t := returns_tuple;
  a := t.a;
  b := t.b;
end.

Afaik Delphi 中唯一这样的匿名(未声明)结构是匿名方法的闭包状态,而 Free Pascal 甚至还不支持。

所以没有支持,我不知道有任何计划。 Pascal 通常很擅长打字。

如果你真的需要替换一些有用的东西,你可以尝试在变体数组之上构建一些东西。如果你只是为了美观,请留下它。