编程中什么是「Context(上下文)」?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了编程中什么是「Context(上下文)」?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3151字,纯文字阅读大概需要5分钟。
内容图文
![编程中什么是「Context(上下文)」?](/upload/InfoBanner/zyjiaocheng/436/370387b5c03f46e88334ae26e2776cfa.jpg)
回复内容:
每一段程序都有很多外部变量。只有像Add这种简单的函数才是没有外部变量的。一旦你的一段程序有了外部变量,这段程序就不完整,不能独立运行。你为了使他们运行,就要给所有的外部变量一个一个写一些值进去。这些值的集合就叫上下文。
譬如说在C++的lambda表达是里面,[写在这里的就是上下文](int a, int b){ ... }。
context是environment的snapshot. 你查不到是因为上下文这个东西不是一个具体的东西,上下文在不同的地方表示不同的含义,要感性理解。context其实说白了,和文章的上下文是一个意思,在通俗一点,我觉得叫环境更好。
....
林冲大叫一声“啊也!”
....
问:这句话林冲的“啊也”表达了林冲怎样的心里?
答:啊你妈个头啊!
看,一篇文章,给你摘录一段,没前没后,你读不懂,因为有语境,就是语言环境存在,一段话说了什么,要通过上下文(文章的上下文)来推断。
子程序之于程序,进程之于操作系统,甚至app的一屏之于app,都是一个道理。
程序执行了部分到达子程序,子程序要获得结果,要用到程序之前的一些结果(包括但不限于外部变量值,外部对象等等);
app点击一个按钮进入一个新的界面,也要保存你是在哪个屏幕跳过来的等等信息,以便你点击返回的时候能正确跳回,如果不存肯定就无法正确跳回了。
看这些都是上下文的典型例子,理解成环境就可以,(而且上下文虽然叫上下文,但是程序里面一般都只有上文而已,只是叫的好听叫上下文。。进程中断在操作系统中是有上有下的,不过不给题主说了,免得产生新的问题) 和其他传入对象参数没什么区别。
但是通常使用Context来描述有几个特点:
- 被传入Context的部分(组件),内部需要频繁的获取Context的data和调用function。对context有很强的依赖,实现建立在context的基础上。
- Context会被较为多数部分(组件)所需要,在软件实现部分Context会在某个scene下出现单一实例化,然后被多个部分(组件)实例对象调用。出现局部全局化。
- Context会持有很多状态data。
- Coder习惯,命名选择困难下的胶合产物。
另外 Context的中文翻译是谁想出来的,站出来我保证不打你。 其他语言不知道。
在 Scheme 中完整的表述应该是 e 在 E 中的上下文,其中 E 是一个表达式,e是该表达式的子表达式。
如 (+ 1 2 3) 中有子表达式 2 ,那么 2 在 (+ 1 2 3) 中就有一个上下文。
在 Scheme 中上下文是一个过程(即函数)。
构造这个函数很简单,第一步把子表达式挖掉,用空洞(hole) 占住位置。
(+ 1 ~ 3),~ 表示空洞。
第二步,将上一步的结果用 lambda 包裹起来,得到函数。
(lambda (~) (+ 1 ~ 3))。即为 2 在 (+ 1 2 3) 中的上下文。
同理 (+ 2 3) 在 (/ (+ 2 3) 4) 中的上下文即是函数 (lambda (~) (/ ~ 4))。
上下文有一个性质,用原来的子表达式调用上下文时得到原来的表达式。
((lambda (~) (+ 1 ~ 3)) 2) ;;=> (+ 1 2 3)
((lambda (~) (/ ~ 4)) (+ 2 3)) ;; => (/ (+ 2 3) 4)
因为上下文有这个性质,可以很方便的用上下文来解释 不动点(y 组合子) 和 延续等概念。 在语言学里,语意学(semantics)不包含语境(context),语用学(pragmatics)则考虑到语境对语意的影响。
在编程中,也就是一些编程构件(如函数)需要考虑到当时的编译/运行环境,才能理解它的语意/运行结果。 理解了stateless的概念就不会有疑惑了。 基于会话,每个处理模块的通信需要一个会话识别标识和内容容器内交换,那个就是上下文。 一般来说是想要有个object来保存状态,想不出好的名字然后就叫context了 简单的说就是一个状态,当与其它模块进行交互,其它模块执行完了通知你的时候,通过context你就可以知道在交互之前你的模块是一个什么样的状态,然后你可以按照这个状态做相应的处理。
内容总结
以上是互联网集市为您收集整理的编程中什么是「Context(上下文)」?全部内容,希望文章能够帮你解决编程中什么是「Context(上下文)」?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。