gpt4 book ai didi

linux - 使用 perl 脚本平铺窗口 - 嵌套数组是个坏主意吗?

转载 作者:太空宇宙 更新时间:2023-11-04 11:38:46 24 4
gpt4 key购买 nike

我正在编写一个脚本,它将在 Perl 中动态平铺 X11 窗口。到目前为止,我将使用包含窗口坐标、大小和 ID 的数组来存储 session 期间平铺窗口的状态。这是个好主意还是我应该以任何其他方式组织这些信息?

最佳答案

适当的结构取决于您将如何访问和处理数据结构。选择正确的结构是解决程序的很大一部分。选择错误的结构,一个简单的问题可能会变得困难。结构非常重要,有时您需要将现有结构转换为更适合您需要执行的工作类型的形式。

这里有两个基本规则可以帮助您选择结构元素:

  1. 如果要保持顺序,请使用数组。
  2. 如果您需要对特定名称、ID 或其他信息进行大量查找,请使用散列。

所以如果你只是想统计窗口数,找到长宽比与屏幕相似且大于窗口数的矩形数,然后一次一个地平铺窗口:使用数组即可。

如果您想做很多事情,例如按应用程序名称查找窗口或其他需要许多不同查找的事情,请使用散列。

如果您需要对多个键进行多次查找并保持顺序,您可以创建指向相同底层引用的多个数据结构。

my @foo = (
{ name => 'a', id => '321' },
{ name => 'b', id => '123' },
);

my %foo_by_name = map { $_{name} => $_ } @foo;
my %foo_by_id = map { $_{id } => $_ } @foo;

如果您需要操作复杂的集合(添加和删除元素),请考虑将各种结构包装在一个对象中,以确保所有底层结构都得到一致的管理。

关于linux - 使用 perl 脚本平铺窗口 - 嵌套数组是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5378433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com