帕斯卡中有像铁锈一样的元组吗?

问题描述

Rust的元组允许匿名的,打包的,堆栈分配的数据结构,其中包含多个值。

示例:

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

在(免费)帕斯卡中,我想我会使用命名记录类型来执行此操作,但是它不会让我分解,所以我需要一个单独的变量。

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通常擅长打字。

如果您确实需要替换某些可用的东西,则可以尝试在变体数组的顶部构建一些东西。如果您只是出于审美目的而想要它,请保留它。