`
huangyiiiiii
  • 浏览: 118946 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

字典与动态语言

阅读更多
字典(或者叫哈希表、关联数组..)与动态语言的渊源可谓极深。动态语言之所以动态,归根结底是因为把对变量的求值放在了运行时完成而非静态语言的编译时确定。动态语言程序中众多的不同层次的名字空间(或者说作用范围)其实就是一个个的字典,变量名为 key,对象为 value。
而对变量求值的过程就是对所在名字空间查找的过程,根据变量名,找出相应的对象,有时候在局部名字空间中没找到,还可能会自动跑到外部名字空间或是全局名字空间去找。
对于支持 OO 的动态语言,对对象的实现其实也都是字典,属性名为 key,属性值为 value ,属性的获取也就变成了对字典的查找。有时子类中找不到还会到父类中去找,这也就是动态语言对继承的实现。
javascript 的 prototype 可能是动态语言实现继承最直接最简洁的方式了。python 为 OO 加了几个新语法,新概念,还有对多重继承的支持,不过本质上其实还差不多。
字典的核心地位在 lua、javascript 中表现得最为明显,在 javascript 中字典和 object 其实就是同义词;在 python 中其实也不难找到字典的身影:locals()、globals()、还有(几乎)所有对象都有的 __dict__ 属性;ruby 这样的语言中这一点会藏得深一些。
【以下为个人感受】
字典是动态语言的灵魂,要使用好动态语言首先肯定是要认清这一点的,不过在实际软件开发中像 lua 一样直面字典编程未免太简陋了一些,javascript 稍微好点,python 完美,而 ruby 过了。
分享到:
评论

相关推荐

    字典树~java语言

    在IT领域,字典树(Trie,也称为前缀树或字首树)是一种用于存储动态集合或关联数组的数据结构。它以高效的方式处理字符串查询,尤其适用于查找具有共同前缀的单词。字典树的主要优点是它可以快速地通过共享前缀来...

    WPF通过资源字典加绑定实现多语言切换

    使用`MergedDictionaries`属性将它们合并,同时添加一个逻辑来根据用户的系统设置或用户选择的语言动态加载正确的字典: ```xml <!-- App.xaml --> ``` 3. 数据绑定: 在UI控件中,使用`{...

    汇编语言的指令字典 2005 II V1.0

    《汇编语言的指令字典 2005 II V1.0》是一部全面解析汇编语言指令的权威工具书,对于深入理解计算机底层运作原理和进行系统级编程具有极其重要的价值。汇编语言,作为计算机语言的基础,是直接对应机器码的编程语言...

    历史名人人名方面词库字典,自然语言处理,分词

    历史名人人名方面词库字典,自然语言处理,分词

    WPF 利用资源字典和资源文件来实现多语言

    2. **动态加载资源**:根据当前语言加载相应的资源字典或资源文件。这可以通过`Application.Current.Resources.MergedDictionaries`来实现,或者在代码中创建并添加新的资源字典实例。 3. **处理未找到的资源**:...

    汽车相关方面词库字典,自然语言处理,分词

    在自然语言处理(NLP)领域,字典和词汇库是至关重要的工具,尤其是在处理特定领域如汽车行业的文本数据时。本话题主要关注的是汽车相关的词库字典,这对于理解和解析与汽车相关的文本,比如汽车品牌、零件名称等,...

    地名方面词库字典,自然语言处理,分词

    地名方面词库字典,自然语言处理,分词

    WPF 多国语言实现与动态切换当前语言

    本文将深入探讨如何在WPF项目中实现多国语言支持,并且讲解如何实现在运行时动态切换应用的语言环境。 首先,我们需要创建语言资源文件。这些文件通常以.resx扩展名存储,每种语言对应一个文件。例如,对于英文和...

    汇编语言指令字典

    总的来说,汇编语言指令字典是学习汇编语言不可或缺的工具,它能够提供详尽的指令解释和实例,帮助读者建立起与计算机硬件直接沟通的语言桥梁。通过深入学习和实践,可以提升编程技能,为从事系统级开发、硬件驱动...

    IT方面词库字典,自然语言处理,分词

    IT方面词库字典,自然语言处理,分词

    指令字典2005 指令字典2005 超有用的,各种与语言都有

    《指令字典2005》是一款非常实用的资源,尤其对于编程和计算机科学领域的人士来说,它提供了丰富的指令信息,涵盖了多种编程语言。这个压缩包中的文件名为“指令字典2005”,我们可以推测这可能是一个包含了2005年...

    winform语言字典

    WinForm语言字典是一款基于Windows Forms(简称WinForm)开发的应用程序,主要用于提供编程语言的查询和学习功能。WinForm是.NET Framework中的一个组件库,用于构建桌面应用程序,它提供了丰富的用户界面控件和事件...

    指令字典2005,各种编程语言指令查询

    《指令字典2005》是一款专注于编程语言指令查询的资源工具,它涵盖了各种编程语言的指令集合,为程序员提供了便捷的查询服务。在编程领域,指令是构成程序的基本元素,不同编程语言有着各自独特的指令系统,这些指令...

    C/C++/VB语言指令字典,经典东东

    本资源集合了一个C、C++和VB的指令字典,对学习和理解这三种语言的指令有极大的帮助。 C语言是一种强大的、低级的编程语言,它被广泛用于系统编程、嵌入式开发以及高性能计算。C语言的指令主要包括关键字、预处理器...

    医学方面词库字典,自然语言处理,分词

    医学方面词库字典,自然语言处理,分词

    新华字典+康熙字典数据库.zip

    标签“mdb access 汉语字典”进一步确认了这些数据库的内容和格式,表明它们是与汉语字典相关的Access数据库,可以用于检索汉字的定义、拼音、笔画、词组和成语等信息。 压缩包内的文件“新华字典Access数据库+...

    指令字典(包括汇编语言,c语言,c++语言...)

    理解这些语言的指令字典意味着要掌握它们的基本语法、数据类型、控制结构、函数调用、内存管理以及与硬件交互的方式。对于开发者来说,掌握这些语言可以提升跨平台和跨层次的编程能力,从而更好地应对各种软件开发...

    古诗词方面词库字典,自然语言处理,分词

    总的来说,古诗词方面词库字典与自然语言处理,特别是分词技术,是IT领域中一项涉及传统文化与现代科技融合的研究。通过对古诗词的智能处理,我们可以让计算机更好地理解和传承这份宝贵的文化遗产,同时也能推动NLP...

    停用词相关方面词库字典,自然语言处理,分词

    停用词词库字典是NLP任务中的基础工具之一,它包含了各种语言中的常见停用词列表。这些词库根据语言特性精心编制,通过对比大量文本数据,筛选出那些在大多数情况下可忽略的词语。在中文环境中,停用词可能包括介词...

    Python语言基础项目案例:字典的操作.pptx

    在这个Python语言基础项目案例中,我们探讨了字典这一数据结构的各种操作,包括创建、添加元素、修改元素、删除元素、查找元素、合并字典以及清空字典。以下是每个任务的详细说明: 1. 创建字典:首先,我们创建了...

Global site tag (gtag.js) - Google Analytics