首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Elisp变量绑定到自身

Elisp是一种用于编写GNU Emacs编辑器的Lisp方言。在Elisp中,变量绑定到自身是指将一个变量绑定到它自己的值上。这种绑定方式在Elisp中是合法且常见的。

在Elisp中,变量绑定到自身的主要用途是在宏展开过程中创建临时变量。通过将变量绑定到自身,可以确保在宏展开期间不会意外地修改全局变量的值。

以下是一个示例,展示了如何将变量绑定到自身:

代码语言:txt
复制
(let ((x 10))
  (message "x的初始值:%s" x)
  (let ((x x))
    (setq x (+ x 5))
    (message "x的新值:%s" x))
  (message "x的最终值:%s" x))

在上面的示例中,我们首先将变量x绑定到值10上。然后,我们在一个新的let表达式中将变量x再次绑定到自身,这样我们就创建了一个临时变量。在这个临时变量中,我们将x的值增加了5。最后,我们打印出了x的最终值。

这个示例的输出将是:

代码语言:txt
复制
x的初始值:10
x的新值:15
x的最终值:10

这是因为在内部的let表达式中,我们修改了临时变量x的值,但是在外部的let表达式中,全局变量x的值保持不变。

在Elisp中,变量绑定到自身是一种强大的技术,可以用于创建临时变量,避免意外修改全局变量的值,并且在宏展开过程中起到重要的作用。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云数据库 MySQL 版(CMYSQL):https://cloud.tencent.com/product/cmysql
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 移动开发(移动推送、移动分析):https://cloud.tencent.com/product/mobile
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯会议:https://cloud.tencent.com/product/tccon
  • 腾讯会议室:https://cloud.tencent.com/product/tcroom
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Oracle 绑定变量窥探

Bind Peeking是Oracle 9i中引入的新特性,一直持续Oracle 10g R2。...影响的版本:Oracle 9i, Oracle 10g     对于绑定变量列中的特殊值或非均匀分布列上的绑定变量会造成非高效的执行计划被选择并执行。        ...这也是OLAP不应该使用绑定变量的一个原因。         更确切地说,绑定变量窥探是在SQL解析的物理阶段,查询优化器将会窥探绑定变量的值并将其作为字面量来使用。...由此可知,尽管可以使用绑定变量解决OLTP系统中大量重复SQL的反复解析的问题。但绑定变量 可能会导致SQL语句选择非最佳的执行计划。尤其是对于存在数据倾斜的列,且生成了直方图更不宜于使用绑定变量。...在Oracle 11g 中,自适 应特性从一定程度解决了绑定变量窥探所导致的问题。

1.7K30
  • 绑定变量及其优缺点

    本文讲述了绑定变量的使用方法,以及绑定变量的优缺点、使用场合。 一、绑定变量     提到绑定变量,就不得不了解硬解析与软解析。...      首先其实质是变量,有些类似于我们经常使用的替代变量,替代变量使用&占位符,只不过绑定变量使用:       替代变量使用时为 &variable_para,相应的绑定变量则为 :bind_variable_para...二、绑定变量的使用     1、在SQLPlus中使用绑定变量 SQL> variable eno number; -->使用variable定义变量...-->存储过程和保重,对参数的传递即是使用自动绑定变量来实现,因此编程人员无须操心绑定变量问题,如下例所示: SQL> create or replace procedure...     -->动态SQL中不能自动使用绑定变量,需要手动设定绑定变量

    1.4K20

    Oracle优化09-绑定变量

    ---- 系列博文 Oracle-绑定变量binding variable解读 Oracle-Soft Parse/Hard Parse/Soft Soft Parse解读 ---- 概述 绑定变量是OLTP...良好的变量绑定会使OLTP系统数据库中的SQL执行的飞快,内存效率极高。 不绑定变量有可能会使OLTP数据库不堪负重,资源被SQL解析严重消耗,系统显得缓慢。...在介绍绑定变量之前,我们需要知道SQL究竟是如何被执行的?...---- 绑定变量 what ,why 绑定变量就起本质而言就是说把本来需要Oracle做硬分析的SQL变成了软分析,以减少Oracle花费在SQL解析上的时间和资源。...---- 是否采用绑定变量在资源消耗上对比 下面我们来对下同一条SQL被执行10000次,绑定变量和非绑定变量在资源消耗上的情况 采用绑定变量 打开SQL_TRACE Connected to Oracle

    65910

    【DB笔试面试581】在Oracle中,绑定变量是什么?绑定变量有什么优缺点?

    ♣ 题目部分 在Oracle中,绑定变量是什么?绑定变量有什么优缺点? ♣ 答案部分 绑定变量这节的内容较多,下面给出这节涉及的关系图: ?...,关键字“USING”后传入的绑定变量具体输入值只与对应绑定变量在目标SQL中所处的位置有关,而与其名称无关,这意味着只要目标SQL中绑定变量所处的位置不同,它们所对应的绑定变量名称是可以相同的。...在PL/SQL中通过批量绑定的方式使用绑定变量。 PL/SQL中的“批量绑定”是一种优化后的使用绑定变量的方式。...③ 在Java中使用绑定变量 在Java中也有绑定变量和批量绑定的用法,本书不再详解。...绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL中直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询绑定变量在运行时传递,然后绑定执行。

    2.6K20

    查看时间戳类型的绑定变量

    当我们需要找到某条使用绑定变量的SQL语句中具体用到的参数值时,通常会使用v$sql_bind_capture视图,如果是字符串类型的变量,直接检索即可, select sql_id, name, position...因为在sqlplus下不能定义日期类型的变量,不好模拟绑定变量的情况, 我们在Java中,模拟传入一个Timestamp类型的绑定变量的场景, Timestamp c1 = new Timestamp...需要在上述SQL中,增加一些条件,利用了ANYDATA的accesstimestamp函数,如下所示,才可看到Timestamp类型的绑定变量值, SQL> SELECT SQL_ID,NAME, POSITION...因此,在12c前,要看到Timestamp类型绑定变量参数的值,就得依靠ANYDATA,我们是可以从《PL/SQL Packages and Types Reference》找到对这个ANADATA的介绍...,例如能根据绑定变量值的类型,判断是否存在隐式转换。

    4.7K30

    【说站】mysql绑定变量是什么

    mysql绑定变量是什么 说明 1、绑定变量的SQL,使用问号标记可以接收参数的位置,当真正需要执行具体查询的时候,则使用具体值代替这些问号。...2、创建绑定变量SQL时,客户端向服务器发送SQL语言的原型。服务器方面收到这个SQL句子的框架后,分析并保存这个SQL句子的一部分执行计划,返回给客户SQL句子处理句柄。...绑定变量的SQL语句: INSERT INTO tbl(col1, col2, col3) VALUES (?, ?, ?)...parameters for markers */   $stmt->bind_param("s", $city);   /* execute query */   $stmt->execute();   //下面的变量为查询表中的字段命名的变量...> 以上就是mysql绑定变量的介绍,希望对大家有所帮助。更多mysql学习指路:MySQL 收藏 | 0点赞 | 0打赏

    95130

    Oracle-绑定变量binding variable解读

    文章目录 绑定变量概述 绑定变量详解 绑定变量使用限制条件 字符级的比较 两个语句所指的对象必须完全相同 两个SQL语句中必须使用相同的名字的绑定变量(bind variables) 查询使用绑定变量可以受益的...SQL 绑定变量栗子 在Java中的使用绑定变量 实际工作中的应用 总结 绑定变量概述 Oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析....绑定变量只是起到占位的作用,同名的绑定变量并不意味着在它们是同样的,在传递时要考虑的是传递的值与绑定变量出现顺序的对位,而不是绑定变量的名称。...这种情况最好不要使用绑定变量。...绑定变量不能当作嵌入的字符串来使用,只能当作语句中的变量来用。不能用绑定变量来代替表名、过程名、字段名等.

    1.9K10

    PVC如何绑定PV

    PVC的绑定过程在Kubernetes中,PVC通过绑定PV来获得实际的存储资源。绑定过程是通过Kubernetes控制平面自动完成的。...Kubernetes调度程序(Scheduler)根据PVC的访问模式、PV的访问模式和节点的可用性等因素,将PVC绑定可用的PV上。绑定过程是自动完成的。...绑定完成后,Kubernetes会将PVC的状态更新为Bound。此时,Pod可以使用PVC来访问存储卷。PVC绑定的限制在Kubernetes中,PVC绑定PV有一些限制。...下面是一些限制:PVC可以只绑定一个PV上。一个PVC只能访问一个PV的存储资源。PVC和PV必须在同一个命名空间中。PVC只能与PV的访问模式匹配。...如果PVC请求的存储容量大于PV的存储容量,则绑定失败。如果PV已经绑定另一个PVC上,则绑定失败。

    2K10

    聊一聊线程变量绑定之InheritableThreadLocal

    通过上一节我们知道,ThreadLocal 可以用于线程变量绑定和隔离,但是却无法做到服务调用链路很长时,需要做链路追踪时,子线程无法获取到父线程中的共享变量的情况,本节的 InheritableThreadLocal...可以看到,在子线程中拿到了父线程的 threadLocal 变量的值。 源码 我们继续按照分析 ThreadLocal 源码的思路来分析一下 InheritableThreadLocal 变量。...,它的值是在构造方法中赋值的,会将父 Thread 的 inheritableThreadLocals 变量传入当前子线程的中,并通过 ThreadLocal.createInheritedMap(parent.inheritableThreadLocals...} } } } 会将父线程的 ThreadLocalMap 中的 table 中的 Entry 拷子线程的...这是因为示例一是每次 new Thread 的操作都会将父线程的 ThreadLocal 变量传入子线程中,示例二是线程池的操作,线程只会初始化一次,子线程是取不到父线程变量的实时变动的。

    83440

    【说站】mysql绑定变量有哪些限制

    mysql绑定变量有哪些限制 说明 1、绑定变量是会话级别,因此连接间不能共用绑定变量句柄。同样,如果连接断裂,原来的句柄就不能再使用了。...(连接池和持续连接可以在一定程度上缓解这个问题) 2、在MySQL5.1之前,绑定变量的SQL不能使用查询缓存。 3、并非所有时候使用绑定变量都能获得更好的性能。...如果只执行一次SQL,使用绑定变量的方式多了一次额外的准备消费阶段,需要额外的网络费用。...(为了正确使用绑定变量,使用完毕后需要释放相关资源) 4、在当前版本下,存储函数不能使用绑定变量,但在存储过程中可以使用。 5、如果总是忘记释放绑定变量资源,服务器方面容易发生资源泄漏。...绑定变量SQL总是受到限制,因此其他错误可能会影响其他线程。

    2.2K20

    Cloudera自身升级CDP私有云基础版

    在我们的案例中,升级CDP意味着对操作系统、RDBMS进行重大升级,并对Java进行次要升级。该CDP升级顾问识别大多数这些我们。 24×7关键业务用例。...更重要的是,升级CDP使我们可以选择增加一套新功能,并为将来提供更现代的数据平台。 转移到CDP的准备 转到CDP时,首先要做出的决定是升级现有集群还是迁移到新集群。...我们确实增加了一些额外的功能,以简化测试和验证过程的一部分,但是许多用户的集群希望在不增加硬件的情况下进行升级,我们通过自身集群的升级来增强信心。 最后,我们有许多相互关联的工作负载。...执行升级 将我们的CDH集群升级CDP只花了一天的时间;为成功升级做准备需要花费更长的时间。...我们希望提前完成这些任务,因此我们只能专注于在时机成熟时从CDH升级CDP。 升级本身花了我们一整天的时间。我们非常努力地遵循说明。

    73810

    聊一聊线程变量绑定之ThreadLocal

    当使用 ThreadLocal 维护变量的时候 为每一个使用该变量的线程提供一个独立的变量副本,即每个线程内部都会有一个该变量,这样同时多个线程访问该变量并不会彼此相互影响,因此他们使用的都是自己从内存中拷贝过来的变量的副本...可以看到,在 thread1 中可以通过 threadLocal 来进行变量的保存,在整个线程的上下文中都可以获取到这个变量的值。...就是为每一个使用该变量的线程都提供一个变量值的副本,每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。main 线程和 thread1 线程之间互不影响。...getEntry 方法也十分地简单,通过 ThreadLocal 实例中的 threadLocalHashCode 值定位它所在的 Entry 在 table 中的下标 i 的值,然后从 table...关于 ThreadLocal 的部分就聊到这里,通过上面的流程我们可以看出,ThreadLocal 是用来隔离每个线程的变量使用的,对于父子线程的变量传递却并不适合,那么怎么拿到父线程的共享变量值呢,下节的

    90820

    从单向双向数据绑定

    而实现这种的可以有双向数据绑定、单向数据流的形式。双向数据绑定是,ui行为改变model层的数据,model层的数据变了也能反映ui上面。...具体的v-model实现在前面文章已经讲过 点击跳转文章 这里,你大概比较深入理解双向数据绑定是什么了。...而我们前面的vue,当我们在控制台改了数据,就可以马上反映v层。angular并没有这个操作,也没有意义。...watch方法来添加的,每一个被绑定的对象属性是:变量名、变量旧值、一个函数(用来返回变量新值)、检测变化的回调函数。 对于为什么使用一个函数来记录新值(类似vue的computed)?...//数据变量旧值 newVal:exp, //返回数据变量新值的函数 listener:listener

    3.6K20
    领券