AHK之多维数组

作者: 河许人 | 来源:发表于2016-11-19 12:42 被阅读157次

多维空间
我们生活在三维世界,很难理解二维世界和四维世界的生活是什么样子的,数学作为偷窥多维世界的门径,向我们传达了很多玄奥的信息,不过数学嘛太抽象,某种意义上看,程序是将数学具象化的过程,也能让我们具体了理解了一下多维的一般,来吧!让我们一起领略一下多维世界的芬芳吧!!

AutoHotkey有两种方法实现多维数组,第一种通过伪数组实现,第二种就是通过数组嵌套的方式,第一种方式呢,我们在以前的课程中已经讲解过了,这里再简单举一个例子:

多维%1%%2%:=1

这种多维数组本质上还是离散的变量。
另一种方式就是通过数组的嵌套来实现,也是本次课的重点,嵌套其实是很容易理解的来张图大家估计一下子都明白了:

数组演示
A:=[1,2,3]B:=[1,1.3,1.4]

假如把B嵌套到A中,是不是数组B就变成A的一个数了,这是就相当于

A[1][2]:=1.3

当然还有另外一种表达形式

A[1,2]:=1.3

嘛区别呢?如果A[1]不存在,A[1][2]A[1,2]在两个方面有区别:

A[1][2]失败而A[1,2]会自动创建一个对象并把它存储到A[1]中.
如果**
A[1][2]base定义了元函数,可以用如下方式调用它们:

A.base.__Get(A, 1)[2] := content ;A[x][y]
A.base.__Set(A, 1, 2, content) ; A[x,y]

因此,A[x,y]可以让对象为全面赋值定义定制的行为。
类似A[a, b, c, d] := value
这样的多维赋值按以下方式处理:
如果仅剩一个键,则执行赋值操作并返回。在其他情况时:
在对象中查找列表中的首个键。
如果找到非对象值,则失败。
如果没有找到对象,则创建一个并保存。
重复调用子对象,从顶部开始把剩下的键和值传递过去。

哈哈,其实能理解二维数组就好,高维数组不是很好理解。那我们试想复杂的对象能不能嵌套呢,答案当然是可以的,但是理解起来就更加抽象复杂,这节课不做过多的解释了,有实力的朋友可以自己探索一下。这种行为仅适用于由脚本创建的对象, 而不适合特殊的对象类型例如 COM对象或 COM 数组.

本教程资源的其他链接:
个人博客:http://www.autoahk.com

群:AutoAHK 348016704(推荐)
如果您喜欢本文,请关注我。如果你要投稿,请在简书上投稿到autohotkey专题。如果你觉得对你生活带来了便捷,为你带来了快乐,请捐助,河许人将为您提供更好的服务,谢谢!

相关文章

  • AHK之多维数组

    AutoHotkey有两种方法实现多维数组,第一种通过伪数组实现,第二种就是通过数组嵌套的方式,第一种方式呢,我们...

  • 多维数组

    创建多维数组 多维数组可以看成是数组的数组,二维数组是最基本的多维数组。 要创建多维数组,请将每个数组放在其自己的...

  • TS学习笔记(5)-多维数组

    多维数组的使用 ========= 知识点 多维数组的定义方法 多维数组的使用方法 代码

  • 4.3~1多维数组

    多维数组可以看作是数组的数组,如果将多维数组看作是比较特殊的一维数组,那数组的元素本身就是数组。在学习多维数组之前...

  • Julia快速入门(五)多维数组 字典

    本篇代码在Julia1.0.2中测试通过 多维数组 多维数组定义 多维数组生成 字典 Julia使用Dict(字典...

  • 2019-07-27

    多维数组: int [][]; 多维数组的声明 ; int [] [] a = new [2][3] new [...

  • 数组

    Arrays工具类的使用 多维数组 多维数组存储表格数据

  • 学习Java第五天

    数组是多个数据的集合 数组的语法 数组元素类型【】 数组名; 多维数组: 数组元素类型【】【】 数组名; 多维数组...

  • PHP Day4:基础回顾与加强

    多维数组 多维数组指的是包含一个或多个数组的数组。 PHP 能理解两、三、四或五级甚至更多级的多维数组。不过,超过...

  • Java学习day-13:多维数组和冒泡排序

    一、多维数组: 多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组。 1.二维数组: (1)二维...

网友评论

    本文标题:AHK之多维数组

    本文链接:https://www.haomeiwen.com/subject/eutepttx.html