赋值

两分钟搞定module.exports与exports区别

六眼飞鱼酱① 提交于 2020-01-06 20:48:46
exports和module.exports区别   1、分析 我们可以从底层实现去理解:在node里每个模块内部都有一个自己的对象module,而该module对象里,有一个子对象exports      在node里,谁require该文件,谁就得到module.exports接口对象           我们发现,每次导出接口成员时通过module.exports.xxx = xxx的方式很麻烦,都得通过点.方式 因此node为了简化操作,专门提供了一个变量:exports = module.exports     也就是说在模块底层实现里,还有这么一句代码 var exports = module.exports     测试如下             2、原理解析 exports是module.exports的一个引用       3、导出单个模块 当导出单个模块时,需要module.exports即可        4、思考进阶(面向对象--引用类型)     为什么导出单个对象不可以使用exports = xxx;直接赋值定义导出???               原理图:引用数据类型      接下来再看个思考题          结果为hello,为什么呢? 当给obj1重新赋值后,它便指向了新对象,开辟了新的内存空间,如下所示,此时两者已经没有关系     

30天自制操作系统第14天

独自空忆成欢 提交于 2020-01-06 20:06:31
操作系统实验日志14 第14天:高分辨率以及键盘输入 文章目录 操作系统实验日志14 一、实验主要内容 1、 内容1:继续测试性能 2、 内容2:提高分辨率1 3、 内容3:提高分辨率2 4、 内容4:键盘输入1 5、 内容5:键盘输入2 6、 内容6:追记内容1 7、 内容7:追记内容2 二、程序设计创新点 三、实验心得体会 一、实验主要内容 1、 内容1:继续测试性能 因为在对前一天的程序进行性能检测时,效果并没有达到想要的结果,于是就想再重新检测看下程序的运行结果。 发现没有什么不同之后,于是考虑到,在前一个程序的改进的地方是消除了移位处理,要想看到程序上的速度有明显变化,应该是进行了大量的移位操作之后,而一直只使用了三个定时器,所以并没有什么不同。因此增加定时器的个数,增加到490个,也就是增加移位的操作,再次测试程序的性能。 测试结果: 测试结果分析: ①通过(1),追加定时器的情况下,取消移位、设置哨兵都会令程序更快。 ②通过(2),定时器较少时,取消移位反而会令程序变慢,可能是因为if语句变多了,加上哨兵后和原来移位速度差不多。 ③在有哨兵、没有移位的情况下,无论定时器的数量多少,对性能影响不大。 ④(3)的情况和②描述的现象差不多,但是(3)更快。原因在这是因为C编译器的问题,因为跳转目标地址不同,CPU的JMP指令执行的时钟周期数也不一样。在程序中

C#数组介绍

こ雲淡風輕ζ 提交于 2020-01-06 19:07:08
数组:数组是一个存储相同类型元素的固定大小的顺序集合,数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合 数组的类型: 简单数组: 数组的声明:datatype [] arrayName; datatype:用于指定被存储在数组中的元素的类型 【】:指定数组的秩(维度),也就是指定数组的大小 arrayname:数组的名称 初始化数组:声明一个数组不会在内存中初始化数组,当初始化数组变量时,可以赋值给数组 数组是引用类型,需要用new关键字来创建数组的实例 数组赋值:可以使用索引号给一个单独数组元素赋值 数组声明的时候已经确定了数组的大小 给数组赋值时通过索引给对应的位置填值 使用的索引必须小于等于数组的声明的最大长度 给数组赋值可以忽略顺序 声明数组的同时可以给数组赋值 可以在创建并初始化一个数组时给数组赋值 可以在初始化时省略数组的大小给数组赋值 可以赋值一个数组变量到另一个目标数组变量中,目标和源会指向相同的内存位置 访问数组: 元素是通过带索引的数组名称来访问,并且不能超出数组的最大索引 多维数组:又称矩形数组 多维数组最简单的形式是二维数组,一个二维数组在本质上是一个一维数组的列表 交错数组:是数组中的数组 数组的使用:冒泡排序 选择排序,插入排序,快速排序 集合Array:Array是数组的本质对象,Array类是C#中所有数组的基类

Python之对DataFrame的多列数据运用apply函数操作

痞子三分冷 提交于 2020-01-06 18:13:20
数据分析过程中,经常会使用 Python之对DataFrame的多列数据运用apply函数操作 , 通过上述操作可以快速综合多列数据得到相应结果。 如果得到的结果只有一个数,则可以直接赋值到DataFrame中的新字段, 但是我在分析过程中往往会遇到,函数结果为元组(得到两个字段),此时需要将结果分别赋值到DataFrame 中的两个新字段,原来的方法则需要apply两次函数。 经过多方搜索,可以通过下述方法得到解决,一次性赋值两列数据。 1、通过apply(pd.Series)实现将tuple进行分列 df = pd.DataFrame({'a':[1,2], 'b':[(1,2), (3,4)]}) df[['b1', 'b2']] = df['b'].apply(pd.Series) 同 样地,放方向则可以将两列数据合并为一个元组列,通过apply(tuple)实现将多列合成一列 df['c'] = df[['b1','b2']].apply(tuple,axis=1) 来源: https://www.cnblogs.com/feigebaqi/p/12156155.html

JS 数据类型、赋值、深拷贝和浅拷贝

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-06 03:56:08
js 数据类型 六种 基本数据类型: Boolean. 布尔值,true 和 false. null. 一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 null 与 Null、NULL或其他变量完全不同。 undefined. 变量未定义时的属性。 Number. 表示数字,例如: 42 或者 3.14159。 String. 表示字符串,例如:"Howdy" Symbol ( 在 ECMAScript 6 中新添加的类型).。一种数据类型,它的实例是唯一且不可改变的。 以及 Object 对象引用数据类型 大多数情况下,我们可以通过 typeof 属性来判断。只不过有一些例外,比如: var fn = new Function ('a', 'b', 'return a + b') typeof fn // function 关于 function 属不属于js的数据类型,这里也有相关的讨论 JavaScript 里 Function 也算一种基本类型? 基本类型 和 引用数据类型 的相关区别 基本数据类型 我们来看一下 MDN 中对基本数据类型的一些定义: 除 Object 以外的所有类型都是不可变的(值本身无法被改变)。例如,与 C 语言不同,JavaScript 中字符串是不可变的(译注:如,JavaScript

undefined和null

一个人想着一个人 提交于 2020-01-05 14:06:28
undefined和null的区别 1.undefined代表定义未赋值 2.null代表定义并赋值了,只是值为null 什么时候给变量赋值为null呢 初始赋值,表示将要赋值为null, 结束赋值,表示要将对象成为垃圾对象(被垃圾回收器回收) 来源: 51CTO 作者: 喝醉的熊 链接: https://blog.51cto.com/13550695/2464457

vector的主要操作

…衆ロ難τιáo~ 提交于 2020-01-05 05:30:45
vector常用方法 assign() 对Vector中的元素赋值 void assign( input_iterator start, input_iterator end ); // void assign( size_type num, const TYPE &val ); reserve() 设置Vector最小的元素容纳数量 函数为当前vector预留至少共容纳size个元素的空间.(译注:实际空间可能大于size) resize() 改变Vector元素数量的大小 函数改变当前vector的大小为size,且对新创建的元素赋值val swap() 交换两个Vector capacity() 返回vector所能容纳的元素数量(在不重新分配内存的情况下) max_size() 返回Vector所能容纳元素数量的最大值(译注:包括可重新分配内存). size() 返回Vector元素数量的大小 get_allocator() 返回vector的内存分配器 http://blog.csdn.net/qingqinglanghua/article/details/5035763 vector.reserve(size)和vector.resize(size,t*)的区别 reserve 是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用容器内的元素

深入理解C# 委托(delegate)-戈多编程

霸气de小男生 提交于 2020-01-05 05:12:28
今天来谈谈委托,深入理解委托,本文来自各大神经验总结。 1.委托是什么? 委托类型的声明与方法签名相似。 它有一个返回值和任意数目任意类型的参数,是一种可用于封装命名方法或匿名方法的引用类型。 委托类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。 (1)从数据结构来讲,委托和类一样是一种用户自定义类型 (2)从设计模式来讲,委托(类)提供了方法(对象)的抽象 既然委托是一种类型,那么它存储的是什么数据? 我们知道,委托是方法的抽象,它存储的就是一系列具有相同签名和返回回类型的方法的地址。调用委托的时候,委托包含的所有方法将被执行。 2.委托类型的定义 委托是类型,就好像类是类型一样。与类一样,委托类型必须在被用来创建变量以及类型对象之前声明。 delegate void MyDel(int x); 委托类型声明: (1) 以deleagate关键字开头。 (2)返回类型+委托类型名+参数列表。 3.申明委托变量 MyDel del1,del2; 4.初始化委托变量 (1)使用new运算符 new运算符的操作数的组成如下: 委托类型名 一组圆括号,其中包含作为调用列表中的第一个成员的方法的名字。方法可以是实例方法或静态方法。 del1 = new MyDel( myInstObj.MyM1 ); del2 = new MyDel( SClass.OtherM2 ); (2

jquery 判断checkbox状态

China☆狼群 提交于 2020-01-05 04:58:48
jquery判断checked的三种方法: .attr('checked): //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或false .prop('checked'): //16+:true/false .is(':checked'): //所有版本:true/false//别忘记冒号哦 jquery赋值checked的几种写法: 所有的jquery版本都可以这样赋值: // $("#cb1").attr("checked","checked"); // $("#cb1").attr("checked",true); jquery1.6+:prop的4种赋值: // $("#cb1″).prop("checked",true);//很简单就不说了哦 // $("#cb1″).prop({checked:true}); //map键值对 // $("#cb1″).prop("checked",function(){ return true;//函数返回true或false }); //记得还有这种哦:$("#cb1″).prop("checked","checked"); 转自: http://blog.csdn.net/limingchuan123456789/article/details/11499665 来源: https:/