嵌套

深入Mysql

血红的双手。 提交于 2020-01-10 13:33:51
深入Mysql 在学习sql,使用sql后,有时候不理解sql代码为什么这样写?如果能了解sql代码的运行,就能够深入理解了。 8.2.1.7 Nested-Loop Join Algorithms 嵌套循环连接算法 https://dev.mysql.com/doc/refman/8.0/en/nested-loop-joins.html Nested-Loop Join Algorithm Block Nested-Loop Join Algorithm 简单的NLJ算法 读取行,在一个循环内,从第一个表每次读一行x,并传递x到内部嵌套的循环(被join的下一个表格的处理)。 这个过程被重复多次,每次处理一个被join的表格。 ⚠️本质就是嵌套循环,一个表一个循环。层层嵌套。 例子:3个表关联。所以嵌套3层。 Table Join Type t1 range t2 ref t3 ALL for each row in t1 matching range { for each row in t2 matching reference key { for each row in t3 { if row satisfies join conditions, send to client } } } 问题? Join Type类型不理解 https://dev.mysql.com

函数对象、函数嵌套、名称空间与作用域、装饰器

爷,独闯天下 提交于 2020-01-10 03:44:50
---恢复内容开始--- 一、函数对象 函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 #3 返回值可以是函数 #3 可以当作容器类型的元素 利用该特性,优雅的取代多分支的if 二、函数嵌套 函数的嵌套调用 def max(x,y): return x if x > y else y def max4(a,b,c,d): res1=max(a,b) res2=max(res1,c) res3=max(res2,d) return res3 print(max4(1,2,3,4)) 函数的嵌套定义 def f1(): def f2(): def f3(): print('from f3') f3() f2() f1() 三、命名空间与作用域 什么是命名空间 #命名空间:存放名字的地方,三种命名空间,(之前遗留的问题x=1,1存放于内存中,那名字x存放在哪里呢?命名空间正是存放名字x与1绑定关系的地方) 命名空间的加载顺序 python test.py #1、python解释器先启动,因而首先加载的是:内置命名空间 #2、执行test.py文件,然后以文件为基础,加载全局命名空间 #3、在执行文件的过程中如果调用函数,则临时产生局部命名空间 名字的查找顺序 局部命名空间--->全局命名空间--->内置命名空间 #需要注意的是:在全局无法查看局部的

七、模板与泛型编程--条款41-43

白昼怎懂夜的黑 提交于 2020-01-09 21:11:17
条款41:了解隐式接口和编译期多态 从一个函数解读隐式接口和编译期多态: template<typename T> void doProcessing(T &w) { if(w.size() > 10 && w != someNastyWidget) { T temp(w); temp.normalize(); temp.swap(w); } } 隐式接口: 从这段代码来看,w对象要支持size,normalize,swap函数,也要支持比较函数,这就是T必须支持的一组隐式接口。 编译期多态: 涉及w对象的任何调用,都有可能造成template的具现化。这样的具现化发生在编译期,也就是编译期多态。 tips:上述的具现化也就是我们调用的时候,具体得到T的类型是什么,然后会调用相应的函数。 不一样之处 在上述代码看来,T类型的对象要支持size函数。但是这个函数必须返回一个数值类型吗? 不一定!只需要返回的类型为X的对象,X+10能够调用一个operator>即可! 更甚至,不需要返回一个X的类型,返回一个Y类型,此Y类型可以隐式转为X即可! 作者总结 classes和templates都支持接口和多态。 对classes而言接口是显式的,以函数签名为中心。多态是通过virtual函数发生于运行期。 对templates参数而言,接口是隐式的,奠基于有效表达式

HTML5标签嵌套规则

﹥>﹥吖頭↗ 提交于 2020-01-09 00:39:28
在html5中, <a> 元素的子元素可以是块级元素,这在以前是被认为不符合规则的。本文将详细介绍html5的标签嵌套规则 分类 html5出现之前,经常把元素按照block、inline、inline-block来区分。在html5中,元素不再按照display属性来区分,而是按照内容模型来区分,分为元数据型(metadata content)、区块型(sectioning content)、标题型(heading content)、文档流型(flow content)、语句型(phrasing content)、内嵌型(embedded content)、交互型(interactive content)。元素不属于任何一个类别,被称为穿透的;元素可能属于不止一个类别,称为混合的。 元数据元素 (metadata content)是可以被用于说明其他内容的表现或行为,或者在当前文档和其他文档之间建立联系的元素 base link meta noscript script style template title 流元素 (flow content)是在应用程序和文档的主体部分中使用的大部分元素 a abbr address area(如果它是map元素的子元素) article aside audio b bdi bdo blockquote br button canvas

FreeRTOS 任务栈大小确定及其溢出检测

ε祈祈猫儿з 提交于 2020-01-06 01:42:22
以下转载自安富莱电子: http://forum.armfly.com/forum.php FreeRTOS 的任务栈设置 不管是裸机编程还是 RTOS 编程,栈的分配大小都非常重要。 局部变量,函数调用时的现场保护和返 回地址,函数的形参,进入中断函数前和中断嵌套等都需要栈空间,栈空间定义小了会造成系统崩溃。 裸机的情况下,用户可以在这里配置栈大小: 为什么是堆中的?因为我们采用的就是动态创建任务的方式。如果静态创建,就和我们自己开辟的空间有关,通常静态创建任务用数组作为容器,但是通常静态创建的方式我们都不使用。 FreeRTOS 的系统栈设置 上面跟大家讲解了什么是任务栈,这里的系统栈又是什么呢?裸机的情况下,凡是用到栈空间的地方 都是在这里配置的栈空间: 在 RTOS 下, 上面两个截图中设置的栈大小有了一个新的名字叫系统栈空间 ,而任务栈是不使用这里的空间的。 任务栈不使用这里的栈空间,哪里使用这里的栈空间呢?答案就在中断函数和中断嵌套。  由于 Cortex-M3 和 M4 内核具有双堆栈指针,MSP 主堆栈指针和 PSP 进程堆栈指针,或者叫 PSP 任务堆栈指针也是可以的。在 FreeRTOS 操作系统中,主堆栈指针 MSP 是给系统栈空间使用的,进 程堆栈指针 PSP 是给任务栈使用的。 也就是说,在 FreeRTOS 任务中,所有栈空间的使用都是通过 PSP

xHtml语法规范

送分小仙女□ 提交于 2020-01-01 14:31:17
1、HTML中不区分大小写,但是我们一般使用小写 2、HTML中的注释不能嵌套 3、HTML标签必须结构完整,要么成对出现,要么是自结束标签 4、HTML标签可以嵌套,但是不能交叉嵌套 5、HTML标签中的属性必须有值,且值必须要加引号 来源: CSDN 作者: 无悟饭空 链接: https://blog.csdn.net/weixin_43269800/article/details/103792541

Python的循环语句

可紊 提交于 2019-12-31 23:45:44
01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下 ,顺序执行代码 分支 —— 根据条件判断,决定执行代码的 分支 循环 —— 让 特定代码 重复 执行 02. while 循环基本使用 循环的作用就是让 指定的代码 重复的执行 while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行 需求 —— 打印 5 遍 Hello Python 思考 —— 如果要求打印 100 遍怎么办? 初始条件设置 —— 通常是重复执行的 计数器 while 条件(判断 计数器 是否达到 目标次数): 条件满足时,做的事情1 条件满足时,做的事情2 条件满足时,做的事情3 ...(省略)... 处理条件(计数器 + 1) 注意 : while 语句以及缩进部分是一个 完整的代码块 第一个 while 循环 需求 打印 5 遍 Hello Python # 1. 定义重复次数计数器 i = 1 # 2. 使用 while 判断条件 while i <= 5: # 要重复执行的代码 print("Hello Python") # 处理计数器 i i = i + 1 print("循环结束后的 i = %d" % i) 注意:循环结束后,之前定义的计数器条件的数值是依旧存在的 死循环 由于程序员的原因, 忘记 在循环内部 修改循环的判断条件

CSS:谈谈栅格布局

亡梦爱人 提交于 2019-12-31 14:41:55
  检验前端的一个基本功就是考查他的布局。很久之前圣杯布局风靡一时,这里就由圣杯布局开始,到最流行的bootstrap栅格布局。    圣杯布局   圣杯布局是一种三列布局,两边定宽,中间自适应: 1 * { 2 box-sizing: border-box; 3 } 4 html, body{ 5 width: 100%; 6 height: 100%; 7 margin: 0; 8 } 9 .container{ 10 width:100%; 11 } 12 .container:after{ 13 display: table; 14 content:"."; 15 clear:both; 16 } 17 18 .container .cl{ 19 float:left; 20 border: 1px solid red; 21 height: 200px; 22 } 23 24 .main{ 25 width:100%; 26 padding 0 290px 0 320px; 27 background-color: blue; 28 } 29 .sub{ 30 width: 320px; 31 margin-left:-100%; 32 background-color: white; 33 } 34 .extra{ 35 width: 290px; 36 margin

python 列表推导式

拜拜、爱过 提交于 2019-12-31 06:26:47
python中列表推导式用于使用其他列表创建一个新列表。 其基本形式为: [表达式 for 变量 in 列表] 如: # 想得到1-10的平方组成的list list_1_10 = [x**2 for x in range(1,11)] print(list_1_10) 输出为: 复杂一点的列表表达式可以对原列表进行变换和筛选。 如: # 想得到1-10中为偶数的平方组成的list example = [i**2 for i in range(1,11) if i%2 == 0 ] print(example) 输出为: 以及对多重嵌套的list进行变换筛选。 如: # 想得到多重嵌套中的数是2的倍数的平方组成的list example2 = [[1,2,3],[4,5,6],[7,8,9],[10]] example3 = [j**2 for i in example2 for j in i if j%2 == 0] print(example3) 输出为: 如: # 想得到多重嵌套的list中一重嵌套中list长度大于1的list中的数为2的倍数的平方组成的list example4 = [[1,2,3],[4,5,6],[7,8,9],[10]] exmaple5 = [j**2 for i in example2 if len(i)>1 for j in i if j%2