fn

Rust Book 学习记录(Nightly)

房东的猫 提交于 2019-12-25 16:12:09
2.1 安装 2.2 Hello, world! 2.3 Cargo! 2.4 变量 2.5 if 2.6 函数 2.7 注释 0.0 2.1 安装 2.2 Hello, world! 2.3 Cargo! 2.4 变量 2.5 if 2.6 函数 2.7 注释 2.1 安装 $ curl -L https://static.rust-lang.org/rustup.sh | sudo sh 2.2 Hello, world! 创建项目 $ mkdir ~/projects $ cd ~/projects $ mkdir hello_world $ cd hello_world 创建 main.rs,当前目录结构 projects/ └── hello_world └── main.rs 编写代码 fn main() { println!("Hello, world!"); } 在终端编译 main.rs $ rustc main.rs // 编译 现在我们的工程目录变成了这样 projects/ └── hello_world ├── main // 可执行文件 └── main.rs 执行 main,可以看到输出的 “Hello, world!”。 $ ./main # or main.exe on Windows // 运行生成的 main 执行文件 Hello, world

杭电ACM2018--母牛的故事

亡梦爱人 提交于 2019-12-25 13:44:03
母牛的故事 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 120200 Accepted Submission(s): 58541 Problem Description 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? Input 输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。 n=0表示输入数据的结束,不做处理。 Output 对于每个测试实例,输出在第n年的时候母牛的数量。 每个输出占一行。 Sample Input 2 4 5 0 Sample Output 2 4 6 这道题涉及的内容是递归化成递推,这类型的题以后会演化成动态规划,重在练习和思考!! 首先拿到题目想到的就是动物繁殖典型例子斐波那契数列,fn=f(n-1)+f(n-2) 同样的,本题可以枚举他前十个数来观察,很多题目都可以这么做,ACM一部分感觉就是在玩小学找规律T T 回到正题··然后得到fn=f(n-1)+f(n-3) 有了这个就可以直接递归了AC了~~ 再深入一些学习这道题,把繁琐的递归转成迭代

linux初始化宏__init, __exit

一世执手 提交于 2019-12-25 01:55:06
我们在内核中经常遇到初始化函数是这样定义的:static int __init init_func(); ,与普通函数相比,定义中多了__init。那么,__init是什么意思呢?还有与其匹配的__exit呢? __init* macro __init定义在:include/linux/init.h #define __init __attribute__ ((__section__ (".init.text"))) #define __initdata __attribute__ ((__section__ (".init.data"))) It tells the compiler to put the variable or the function in a special section, which is declared in vmlinux.lds. init puts the function in the ".init.text" section and initdata puts the data in the ".init.data" section. 译文:__init宏告知编译器,将变量或函数放在一个特殊的区域,这个区域定义在vmlinux.lds中。__init将函数放在".init.text"这个代码区中,__initdata将数据放在".init

day15 Jquery

一个人想着一个人 提交于 2019-12-24 20:56:03
一 jQuery是什么? [1] jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。 [2] jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE! [3] 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 [4] jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。 [5] jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。. 二 什么是 jQuery 对象? jQuery 对象就是通过 jQuery 包装 DOM 对象后产生的对象。 jQuery 对象是 jQuery 独有的 . 如果一个对象是 jQuery 对象 , 那么它就可以使用 jQuery 里的方法 : $(“#test”).html(); $("#test").html() 意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法 这段代码等同于用DOM实现代码: document.getElementById("

JS函数节流

早过忘川 提交于 2019-12-24 16:17:56
函数节流原文地址 :http://www.cnblogs.com/haoxl/archive/2016/03/07/5252409.html JS函数节流 背景: 在前端开发中,有时会为页面绑定resize事件,或为一个页面元素拖拽事件(其核心就是绑定mousemove)在一个正常操作中也有可能在一个短时间内触发非常多次事件绑定程序,而DOM操作是很消耗性能的,如果为这些事件绑定一些操作DOM节点的操作的话就会引发大量的计算,在用户看来页面可能就一时间没有响应,这个页面就变卡变慢了,甚至在IE下,如果绑定的resize事件进行较多DOM操作,其高频率可能直接就使得浏览器崩溃。 函数节流简单讲就是让一个函数无法在很短的时间间隔内连续调用,只有当上一次函数执行后过了你规定的时间间隔,才能进行下一次该函数的调用。 函数节流原理:用定时器,当触发一个事件时,先setTimout让这个事件延迟一会再执行,如果在这个时间间隔内又触发了事件,那我们就clear掉原来的定时器,再setTimeout一个新的定时器延迟一会执行。 优缺点: 《JavaScript高级程序设计》中介绍的函数节流 function throttle(method,context){ clearTimeout(method,tId); method.tId=setTimeout(function(){ method

浅析 JavaScript 中的 函数 uncurrying 反柯里化

穿精又带淫゛_ 提交于 2019-12-23 17:18:05
柯里化 柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果。 因此柯里化的过程是逐步传参,逐步缩小函数的适用范围,逐步求解的过程。 请见我的另一篇博客· 浅析 JavaScript 中的 函数 currying 柯里化 反柯里化 相反,反柯里化的作用在与扩大函数的适用性,使本来作为特定对象所拥有的功能的函数可以被任意对象所用. 即把如下给定的函数签名, obj.func(arg1, arg2) 转化成一个函数形式,签名如下: func(obj, arg1, arg2) 这就是 反柯里化的形式化描述。 当然是有个前提的,函数 y 需要语言上支持鸭子类型, 引自维基 在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。...在使用鸭子类型的语言中,这样的一个函数可以接受一个任意类型的对象,并调用它的走和叫方法... 例如,下面的一个简单实现: Function.prototype.uncurrying = function() { var that = this; return function() { return Function.prototype.call.apply(that, arguments); } }; function sayHi () {

装饰器

大兔子大兔子 提交于 2019-12-23 05:19:56
一、补充:nonlocal关键字 1、作用:将L与E(E中的名字需要提前定义)的名字统一 2、应用场景:如果想在被嵌套的函数中修改外部函数变量(名字)的值 3、案例: def outer(): num = 10 print(num) # 10 def inner(): nonlocal num num = 20 print(num) # 20 inner() print(num) # 20 二、装饰器的原则: 开放封闭原则:不改变调用函数方式与源代码的情况下增加新功能 1、不能修改被装饰对象(函数)的源代码(封闭) 2、不能更改被修饰对象(函数)的调用方式,并且能达到增加新功能的效果(开放) 三、装饰器 1、原理: # 把要被装饰的函数作为外层函数的参数通过闭包操作后返回一个替代版函数 # 被装饰的函数:fn # 外层函数:outer(func) outer(fn) => func = fn # 替代版函数: return inner: 原功能+新功能 2、例: def fn(): print("原有功能") # 装饰器 def outer(tag): def inner(): tag() print(新增功能") return inner fn = outer(fn) fn() 四、@语法糖:@外层函数 例: def outer(f): def inner(): f()

Javascript中 节流函数 throttle 与 防抖函数 debounce

纵然是瞬间 提交于 2019-12-23 03:46:02
问题的引出   在一些场景往往由于事件频繁被触发,因而频繁地进行DOM操作、资源加载,导致UI停顿甚至浏览器崩溃。 在这样的情况下,我们实际上的需求大多为停止改变大小n毫秒后执行后续处理;而其他事件大多的需求是以一定的频率执行后续处理。针对这两种需求就出现了debounce和throttle两种解决办法。 1. resize事件 2. mousemove事件 3. touchmove事件 4. scroll事件 throttle 与 debounce 在现在很多的javascript框架中都提供了这两个函数。例如 jquery中有throttle和debounce插件, underscore.js ,Lodash.js 等都提供了这两个函数。 原理: 首先我们会想到设置一定的时间范围 delay ,每隔 delay ms 执行不超过一次。 事件处理函数什么时候执行能? 这里有两个选择,一是先执行,再间隔 delay ms来等待;或者是先等待 delay ms,然后执行事件处理函数。 操作过程中的事件全不管,反正只执行一次事件处理。 相同低,这一次的事件处理可以是先执行一次,然后后面的事件都不管; 或者前面的都不管,最后操作完了再执行一次事件处理。 区别:   1. throttle     如果将水龙头拧紧直到水是以水滴的形式流出,那你会发现每隔一段时间,就会有一滴水流出。    

关于JavaScript面向对象那些事

廉价感情. 提交于 2019-12-23 00:08:51
当你在使用手机的时候,你会发现,你并不懂得其中的原理就会操作了,其实这就是面向对象的思想。面向对象还有很多地方都会运用到。JavaScript也不例外,现在跟随我的脚步,来学习一下吧。 面向过程和面向对象编程概述 面向过程编程就是分析出解决问题的步骤,然后使用函数把这些步骤一步步实现,重心放在完成的每个过程上。 面向对象则是以封装的思想,将问题分析得到的数据封装成一个个的对象,然后通过对对象的操作来完成相应的功能。 举个栗子:厨师炒菜 以面向过程的思想来分析应该分为下面几个步骤: ​ 1.检查食材是否齐全 2.如果不不够,去菜市场买菜 3.洗菜 4.开火 5.按炒菜(按顺序放入相应的食材,调料等) 6.出锅装盘 以面向对象的思想分析则是这样的: ​ 1.厨师,检查食材,炒菜 2.采购员,去菜市场买菜 3.墩子,洗菜,切菜,备菜 ​ 通过调用上面对象中的行为方法即可完成炒菜的整个过程 从上面的例子可以看出,面向对象和面向过程最大的不同在于,面向对象关心的是由哪些对象,每个对象应该有哪些功能,而面向过程关心的是实现过程中的每个步骤。 那么这两种思想到底孰优孰劣呢?从表面上看,貌似面向对象更好,为什么呢?因为它完全符合我们的正常思维方式,所以在接受度方面,面向对象的思想肯定是更好。但是面向过程也有他的优势,就是灵活便捷,而面向对象相对来说会更耗资源,更慢一点。 所以,至于以后使用哪一种

直击JavaScript之面向对象

纵然是瞬间 提交于 2019-12-23 00:05:06
有时候,我们使用电脑的时候,并不知道它的原理是什么,但是就是会使用他,这就是面向对象。同样的,在JavaScript中也可使用这种原理,接下来就随我一起探索一下关于JavaScript面向对象的内容吧。 面向过程和面向对象编程概述 面向过程编程就是分析出解决问题的步骤,然后使用函数把这些步骤一步步实现,重心放在完成的每个过程上。 面向对象则是以封装的思想,将问题分析得到的数据封装成一个个的对象,然后通过对对象的操作来完成相应的功能。 举个栗子:厨师炒菜 以面向过程的思想来分析应该分为下面几个步骤: ​ 1.检查食材是否齐全 2.如果不不够,去菜市场买菜 3.洗菜 4.开火 5.按炒菜(按顺序放入相应的食材,调料等) 6.出锅装盘 以面向对象的思想分析则是这样的: ​ 1.厨师,检查食材,炒菜 2.采购员,去菜市场买菜 3.墩子,洗菜,切菜,备菜 ​ 通过调用上面对象中的行为方法即可完成炒菜的整个过程 从上面的例子可以看出,面向对象和面向过程最大的不同在于,面向对象关心的是由哪些对象,每个对象应该有哪些功能,而面向过程关心的是实现过程中的每个步骤。 那么这两种思想到底孰优孰劣呢?从表面上看,貌似面向对象更好,为什么呢?因为它完全符合我们的正常思维方式,所以在接受度方面,面向对象的思想肯定是更好。但是面向过程也有他的优势,就是灵活便捷,而面向对象相对来说会更耗资源,更慢一点。 所以