什么是AutoHotKey对象

对象.jpeg

AutoHotKey对象就是AutoHotKey的老婆!哈哈,非常无厘头,但这就是事实。搞定AutoHotKey对象你就基本搞定了AutoHotKey。但是她也不是那么容易搞定的!!

在搞定她之前呢,我们先了解一下什么是对象!?

对象又叫数据对象,是学习编程过程中必须理解的复合信息(类)的抽象。所谓复合信息(类)是指具有一系列不同性质或属性的事物,这相对于之前谈到的变量、数组就相当于广义相对论相对于狭义相对论,哈哈,这个比喻估计能把很多人都整懵了,通俗地讲,对象就是一个广义的数组,数组中可以包含许许多多的数据结构,一个朋友给我举了一个特别形象的比喻,假如人是一个类,“河许人”和“悠然生活_自由”就是人类的两个实例对象,哈哈,河许人就是我,对象就是可以视为个体的存在,有相关的特征和行为。

今天,我们就来说说AutoHotKey的对象!

对象的创建和释放:

<pre>obj := {} ; 创建对象。
obj := "" ; 释放最后一个引用,因此释放对象。</pre>

脚本不会显式的释放对象。

  • 当对象的最后一个引用被释放时,会自动释放这个对象。
  • 当某个保存引用的变量被赋为其他值时,会自动释放它原来保存的引用。
  • 当另一个对象的某个字段被赋为其他值或从对象中移除时,保存在这个字段中的引用会被释放。

这同样适用于数组,因为它是真正的对象。

<pre>arr := [{}] ; 创建包含对象的数组。
arr[1] := {} ; 再创建一个对象,隐式释放第一个对象。
arr.Remove(1) ; 移除并释放第二个对象。</pre>

特殊情况
包含循环引用的对象无法被自动释放。
例如,如果 x.child 引用 yy.parent 引用了 x,则清除 xy 是不够的,因为父对象仍然包含到这个子对象的引用,反之亦然。要避免此问题,请首先移除循环引用。

<pre>x := {}, y := {} ; 创建两个对象。
x.child := y, y.parent := x ; 创建循环引用。

y.parent := "" ; 在释放对象前必须移除循环引用。
x := "", y := "" ; 如果没有上一行,则此行无法释放对象。
</pre>

备注

语法

对于所有类型的对象都支持数组语法 (方括号) 和对象语法 (句点)。

同时, 对象引用自身也可以用在表达式中:

  • 当对象引用使用 = == != <> 中的一种比较运算符和其他值比较时, 仅在两个值都为指向相同对象的引用时它们才被视为相等的.
  • 进行逻辑运算时对象总是被视为 true, 例如在 if obj, !objobj ? x : y 中.
  • 使用 & 取址运算符可以获取对象的地址. 它从此对象创建时到此对象的最后一个引用被释放期间唯一标识此对象。

如果在不期望对象的地方使用对象, 那么它被视为空字符串. 例如, MsgBox %object% 显示空的 MsgBox 且 object + 1 产生空字符串. 由于这种特性可能会变化, 所以不要依赖它。

当方法调用紧接着赋值运算符, 那么它等同于用参数来设置属性. 例如, 下面的方式是等同的:

<pre>obj.item(x) := y
obj.item[x] := y</pre>

通用支持 x.y += 1--arr[1] 这样的复合赋值.

当 getting 或 setting 属性时参数可以省略. 例如, x[,2]. 脚本可以利用属性的参数和元函数来定义默认值. 方法名称也可以完全省略, 就像这样 x[](a). 脚本可以利用 __Call 元函数的首个参数定义默认值, 因为它并不提供返回值. 注意,这并不同于 x.(a), 而相当于 x[""](a). 如果在调用 COM 对象时省略了属性或方法的名称, 它的 "默认成员" 将被调用.

对于哪种值可以在通过 [], {}new 运算符创建的对象中作为键使用的一些限制:

  • 整数键使用本机有符号整数类型存储.
    AutoHotkey 32 位支持使用从 -2147483648 到 2147483647 范围内的整数作为键. AutoHotkey 支持 64 位整数, 但仅 AutoHotkey 64 位版本才支持完整范围的整数在对象中作为键使用.
  • 由上面这点可知, 整数值的字符串格式不会被保留.
    例如, x[0x10], x[16]x[00016] 都是等同的. 这点同样适用于不含小数点的数值型字符串.
  • 用引号括起来的原义字符串在 v1.x 中被视为纯非数值型, 所以 x[1]x["1"] 等同的. 同时, 如果原义字符串和另一个值串联在一起 (如同在 "0x" x), 结果被视为纯非数值型. 不过, 这不适用于变量, 所以 x[1]x[y:="1"] 是等同的. 此问题将在 v2 中解决, 所以脚本应避免使用用引号括起来的原义字符串作为键.
  • 不支持使用浮点数作为键 - 而是把它们转换成字符串. 在 v1.x 中, 浮点数文字保留它们原始的格式, 而纯浮点数 (例如 0+1.0Sqrt(y) 的结果) 被强制转换成当前的浮点格式. 考虑到一致和清晰, 脚本中应避免使用浮点文字作为键.
  • 字符串键"base" 没有和 Insert一起使用时具有特殊含义

讲到这里呢,今天的课程就结束了,希望我今天的课程能让你懂了什么什么是对象,有哪些特点,关于这些特点,大家一定要熟记了!谢谢大家!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,560评论 18 399
  • 内置函数Python解释器内置了许多功能和类型,总是可用的。他们是按字母顺序列在这里。 abs(x)返回一个数的绝...
    uangianlap阅读 1,223评论 0 0
  • 隔壁家长一直在训孩子,一晚上了,嗨,这年头教育体系下家长难孩子也难。
    琴鸦阅读 276评论 0 0
  • 《喜事》 夏木繁繁 着凉衫 敲下梅子 与那小儿换壶酒来 棋逢对手 风云变幻 难 难 一旁绿裙少女 倚树观 嫩齿 咬...
    yuming_h阅读 128评论 2 3
  • 经验贴像吃月饼,精讲像吃饭。当前的重心在研究精讲。 写作大前提:有趣有料,以本人的口吻写。取经号是一个平台,你能写...
    a9427bd9da65阅读 248评论 0 0