fun函数

变量提升、函数提升

一笑奈何 提交于 2019-11-28 09:59:33
  如果熟悉 js代码执行的过程 ,这个问题不难理解 一、变量提升   ES5中没有块作用域,有全局作用域、局部作用域(函数)等 // 不声明定义变量 console.log(name) //报错,变量没有定义 // 变量提升 console.log(info) // undefined,不报错 var info = "hello"; function fun(){ console.log(a) // undefined,不报错 var a = 'world' console.log(a) // world } fun(); 之所以出现这种情况,是因为变量提升导致的;上述过程相当于: var info; // 先声明变量,没有赋值 function fun(){ var a; // 声明变量,没有赋值 console.log(a) // undefined,不报错 a = 'world' console.log(a) // world } // 不声明定义变量 console.log(name) //报错,变量没有定义声明 // 变量提升 console.log(info) // undefined,不报错 info = "hello"; fun(); 二、函数提升   创建函数有三种方式:     1.函数声明     2.函数表达式     3.使用Function对象创建

javascript进阶系列专题:闭包(Closure)

混江龙づ霸主 提交于 2019-11-28 02:27:22
在javascript中,函数可看作是一种数据,可以赋值给变量,可以嵌套在另一个函数中。 var fun = function(){ console.log("平底斜"); } function fun(){ var n=10; function son(){ n++; } son(); console.log(n); } fun(); //11 fun(); //11 我们把上面第二段代码稍微修改下: var n=10; function fun(){ function son(){ n++; } son(); console.log(n); } fun(); //11 fun(); //12 看出差别了吗,如果理解不了代码执行结果,请看上一篇博文,关于javascript作用域和作用域链的讲解。 上面这段代码中变量n是全局变量,随时可能被重新赋值,而无需通过fun函数的调用。为了让变量n不受污染,或者说是减少全局变量的污染,我们需要把n放到函数中作为局部变量。 function fun(){ var n=10; function son(){ n++; console.log(n); } son(); } fun(); //11 fun(); //11 如果我们可以在全局中直接调用son函数,那么便可以达成想要的效果。son函数现在是作为局部变量存在,要想在全局中访问

删除字符串中指定的*

女生的网名这么多〃 提交于 2019-11-27 19:02:53
假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。 形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。 #include<stdio.h> void fun(char a[],char *p) { char ch=*p; p=a; //将p指向a while(*a!=ch) //遍历a至最后一个字母,如果不是*就赋值给p { if(*a!='*') { *p++=*a; } a++; } while(*a!='\0') //将剩余的值赋给p { *p++=*a++; } a=p; *(a++)='\0'; //将a的最后字符置'\0' } void main() { char s[81],*p; p=s; printf("please input a string:"); gets(s); while(*p!='\0')p++; p--; while(*p=='*')p--; //将p指针指向最后一个字母 fun(s,p); for(int i=0;s[i]!='\0';i++) printf("%c",s[i]); printf("\n"); }    来源: https://www.cnblogs.com/-slz-2/p/11373430.html

自然常数e的算法

不想你离开。 提交于 2019-11-27 14:25:30
引用:百度百科一段话; e,作为数学常数,是自然对数函数的 底数 。有时称它为 欧拉数 (Euler number),以 瑞士 数学家欧拉命名;也有个较鲜见的名字 纳皮尔常数 ,以纪念苏格兰数学家 约翰·纳皮尔 (John Napier)引进对数。它就像圆周率π和虚数单位i,e是数学中最重要的 常数 之一。 它的其中一个定义是 ,其数值约为(小数点后100位):“e ≈ 2.71828 18284 59045 23536 02874 71352 66249 77572 47093 69995 95749 66967 62772 40766 30353 54759 45713 82178 52516 64274”。 1 def fun_e (n): 2 sum = 0 3 4 sum += (1+1/n)**n 5 6 return sum 7 print(fun_e(620000000)) 8 #结果:2.7182816890306443 1 def fun_e (n): 2 sum = 1 3 s = 1 4 for i in range(1,n+1): 5 for j in range(1,i+1): 6 s = s*j 7 sum += 1/s 8 return sum 9 print(fun_e(1000)) #结果:2.5868345309364718 暂时用这两种算法

「SImulink调试错误」Invalid object id.Component: Simulink | Category: Model error

我的未来我决定 提交于 2019-11-27 07:29:42
1.问题描述 在另一台电脑上运行SImulink仿真时,报出如下错误: Invalid object id.Component: Simulink | Category: Model error 2.错误原因 从一个版本的Matlab软件制作,到另一个版本Matlab运行出现的fun函数不可用问题。 3.解决方法 新建一个fun函数,替换掉原来的fun函数,问题即可解决。 ×亲测有效 来源: https://blog.csdn.net/Robot_Starscream/article/details/97521000

Kotlin学习三:高阶函数

↘锁芯ラ 提交于 2019-11-27 02:41:33
一、高阶函数的基本概念 class Hello { fun world() { println("Hello World") } } class PdfPrinter { fun print(any: Any) { kotlin.io.print(any) } } fun main(args: Array<String>) { val mList: List<Int> = listOf(1, 3, 5, 7, 9) println(mList) val mList2: List<String> = arrayListOf("1", "2", "5") println(mList2) val mArray: Array<String> = arrayOf("2", "5", "8") mArray.forEach { print(it) } println() mArray.forEach(::print) println() Hello::world val helloWorld = Hello::world println(helloWorld) val hello = Hello() hello.world() mArray.filter(String::isNotEmpty) val pdfPrinter = PdfPrinter() mArray.forEach

指针函数与函数指针

六眼飞鱼酱① 提交于 2019-11-27 01:29:28
1、明确谁是主体,前面是定语,后面是主体。 指针函数:返回指针的函数 函数指针:指向函数的指针 2、函数类型 函数包括:函数名,返回类型,形参表,修饰符。 函数类型表明一类函数,这一类函数的返回类型和形参表相同,而与函数名无关。 一个函数,把函数名去掉,就是函数类型。比如: int Fun (int a) --- 函数Fun,函数Fun的类型为 int (int a); 对于函数类型:在返回类型和形参表之间,加上一个函数名,就表示一个特定的函数。在返回类型和形参表之间,加上一个指针名,表示指向这一类函数的指针。 3、区分 int * Fun(int a ) :函数名为Fun,返回类型为 int* int (*Fun) (int a):函数指针,指向一类函数 int (int a) 函数指针也是一种类型,去掉指针名,即int (*) (int a),表示一类指针 思考:函数既然能返回指向数据的指针,当然也可以返回指向函数的指针,原则上应该这样写: int (*) (int a) G (int a); 实际上是这样写的:int (* G(int a) ) (int a), 阅读方法是按照优先级,由内到外。先看G (int a )是一个函数,形参表为int a,返回类型是 int (*) (int a) 为了便于理解,使用typedef,如下: typedef int (* PF)

C++继承、多态与虚表

拟墨画扇 提交于 2019-11-26 23:54:56
继承 继承的一般形式 子类继承父类,是全盘继承,将父类所有的东西都继承给子类,除了父类的生死,就是父类的构造和析构是不能继承的。 继承的访问权限从两方面看: 1.对象:对象只能直接访问类中公有方法和成员。 2.继承的子类 私有继承就终止了父类再往下继承的能力 c++默认继承为私有继承 像以下程序 class D :public B1 ,public B2,public B3 公有继承B1,B2,B3 class D :public B1,B2,B3; 公有继承B1,私有继承B2,B3 继承是按照继承的顺序,和构造函数的初始化顺序无关,看以下程序 如果,子类中有对象成员,构造顺序是:1.父类,2.对象成员,3.自己 如果父类中有虚基类,应该先构造虚基类 虚基类 虚基类主要解决菱形继承问题,有以下程序 继承模型为: 内存模型: 如果对父类的x进行赋值,如下程序,会引发错误,编译器会报错,因为继承了两份,会产生二义性 如果指定访问A1还是A2就不会报错 内存中只为A1的成员x赋值了 如果希望来自父类的x在子类中只有1份 那么就要用虚拟继承 对于虚继承来的基类,又叫做虚基类 现在对cc.c进行赋值 A1和A2对象中的x成员都变成100 如果不是虚拟机成A1和A2继承来的x各自是各自的空间 虚继承让子类只保持父类的一份成员拷贝,A1和A2的继承的成员的空间是一个

放学

你说的曾经没有我的故事 提交于 2019-11-26 20:10:40
70分运行超时 #include <iostream> using namespace std; //结构体,记录每个路口状态和所剩时间 struct status { int color; int time; }; int r, y, g; status st[100001]; //函数,得到下一个灯色,所剩时间为最大 status nextOf(status now) { status next = { 0,0 }; switch (now.color) { case 1: {//red next.color = 3; next.time = g; break; } case 2: {//yellow next.color = 1; next.time = r; break; } case 3: {//green next.color = 2; next.time = y; break; } default:break; } return next; } //函数:需要再此灯处耗费多少时间 int cost(status now) { switch (now.color) { case 1: {//red return now.time; } case 2: {//yellow return now.time + r; } case 3: {//green return 0;

Python默认参数陷阱问题

ぃ、小莉子 提交于 2019-11-26 20:02:28
def fun(a,l = []): l.append(a) print(l) fun('hhh') fun('mmmm') fun('xingkd') python中的def语句在每次执行的时候都初始化一个函数对象,这个函数对象就是我们要调用的函数,可以把它当成一个一般的对象,只不过这个对象拥有一个可执行的方法和部分属性,对于参数中提供了初始值的参数,由于python中的函数参数传递的是对象,也可以认为是传地址,只有def的时候初始化一次,然后在调用者和被调用者中都是共享的,所以在 func.func_defaults中只能看到一个默认参数,在该函数对象被初始化的时候就已经存在了。 来源: CSDN 作者: 「已注销」 链接: https://blog.csdn.net/sanshaoye1991/article/details/82801640