赋值语句

函数基本知识一

戏子无情 提交于 2019-12-04 04:25:21
函数基本知识一 一、灵魂三问 1.什么是函数 在程序中具备某种功能的“工具”就是函数,并且函数可以像工具一样重复调用 2.为什么要用函数 防止代码冗余和程序的可读性变差 3.怎么用函数 函数遵循先定义再调用的规则 即:制造工具----》定义函数 使用工具----》调用函数 二、定义函数 1.定义规则 函数的定义就相当于事先将 函数体 代码保存起来,然后将内存地址赋值给函数名,函数名就是对这段代码的引用,这和变量的定义是相似的。没有事先定义函数而直接调用,就相当于在引用一个不存在的’变量名’。 注意: 定义函数时只检测语法,不执行函数体代码,只有调用函数时才会执行 定义函数的语法 def 函数名(参数1,参数2,...): """文档描述""" 函数体 return 值 def: 定义函数的关键字; 函数名:函数名指向函数内存地址,是对函数体代码的引用。函数的命名应该反映出函数的功能; 括号:括号内定义参数,参数是可有可无的,且无需指定参数的类型; 冒号:括号后要加冒号,然后在下一行开始缩进编写函数体的代码; """文档描述""": 描述函数功能,参数介绍等信息的文档,非必要,但是建议加上,从而增强函数的可读性; 函数体:由语句和表达式组成; return 值:定义函数的返回值,return是可有可无的。 2.函数类型 有参函数 参数是函数的调用者像函数体传值的 媒介

ES6新增语法(let)

喜夏-厌秋 提交于 2019-12-04 03:35:33
1、let  ES6中新增的用于声明变量的关键字。  let 声明的变量只在所处于的块级有效。  注意:使用 let 关键字声明的变量才具有块级作用域,var 关键字是不具备这个特点的。  1. 防止循环变量变成全局变量。  2. 不存在变量提升  3. 暂时性死区 if(true){ let a=10; } console.log(a); // a is not defined  //防止循环变量变成全局变量  for(var i=0;i<2;i++){  }  console.log(i); // i=2(只有i=2时,不满足for循环条件,即执行下面语句),如果 for循环中使用 let 那么输入i就会报错: i is not defined   //let不存在变量提升  console.log(a); //a is not defined  let a = 10;  //暂时性死区  var num = 10;  if(true){    console.log(num);    let num = 20; //只要在块级区域声明了变量let,那么这个块级区域就被let所绑定,所以在块级里面使用的 num 跟外面定义的全局变量 num 没有关系  } 2、const  作用:声明常量,常量就是值(内存地址)不能变化的量  1.const关键字   1.具有块级作用域  

TS(6)-- 类型推论、类型兼容性、高级类型

血红的双手。 提交于 2019-12-04 02:38:45
2019-11-09: 学习内容:类型推论、类型兼容性、高级类型 一、类型推论:类型是在哪里如何被推断的   在有些没有明确指出类型的地方,类型推论会帮助提供类型。如:let x = 3; 变量 x 的类型被推断为数字。 这种推断发生在初始化变量和成员,设置默认参数值和决定函数返回值时。大多数情况下,类型推论是直截了当地。   最佳通用类型:如: let x = [0, 1, null]; 两种选择:number 和 null , 计算通用类型算法会考虑所有的候选类型,并给出一个兼容所有候选类型的类型。 如果没有找到最佳通用类型的话,类型推断的结果为联合数组类型。 上下文类型:   TypeScript类型推论也可能按照相反的方向进行。 这被叫做“按上下文归类”。按上下文归类会发生在表达式的类型与所处的位置相关时。 window.onmousedown = function(mouseEvent) { console.log(mouseEvent.button); //<- Error };   这个例子会得到一个类型错误, TypeScript类型检查器使用 Window.onmousedown 函数的类型来推断右边函数表达式的类型。 因此,就能推断出 mouseEvent 参数的类型了。 如果函数表达式不是在上下文类型的位置, mouseEvent 参数的类型需要指定为 any

PHP表达式_3_2_变量

天大地大妈咪最大 提交于 2019-12-03 21:06:46
以下为学习孔祥盛主编的《PHP编程基础与实例教程》(第二版)所做的笔记。 PHP变量可分为自定义变量和预定义变量。 以下所谈到的变量均为自定义变量。 1.变量的基本概念   PHP的变量名遵循以下规则:     (1)变量名必须以美元符号($)开头,如$username。     (2)变量名的第一个字符必须是字母或下画线(不能是数字),变量名称可以为字母、数字和下画线的组合,如$user_name_1。     (3)PHP中的变量名是区分大小写的。这意味着$userName和$UserName是截然不同的两个变量。   和传统的高级语言不一样,PHP对于已经定义的变量可以通过重新赋值的方法修改该变量的值,甚至修改该变量的数据类型。 1 <?php 2 //以下语句修改$userName变量的值 3 $userName="张三"; 4 $userName="李四"; 5 6 //以下语句既修改$sex变量的值,又修改了$sex变量的数据类型 7 $sex=FALSE; 8 $sex="男"; 9 10 echo $userName; 11 echo "<br/>"; 12 echo $sex; 13 ?> 输出: 李四 男 2.变量的赋值方式   变量赋值是指赋予变量具体的数据,使用赋值运算符 “ = ” 来实现。   PHP提供两种赋值方式:传值赋值和传地址赋值。 (1

TypeScript-初级-04-枚举

情到浓时终转凉″ 提交于 2019-12-03 15:19:54
枚举 枚举(Enum)类型用于取值被限定在一定范围内的场景,比如一周只能有七天,颜色限定为红绿蓝等。 简单的例子 枚举使用 enum 关键字来定义: enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; 枚举成员会被赋值为从 0 开始递增的数字,同时也会对枚举值到枚举名进行反向映射: enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; console.log(Days["Sun"] === 0); // true console.log(Days["Mon"] === 1); // true console.log(Days["Tue"] === 2); // true console.log(Days["Sat"] === 6); // true console.log(Days[0] === "Sun"); // true console.log(Days[1] === "Mon"); // true console.log(Days[2] === "Tue"); // true console.log(Days[6] === "Sat"); // true 事实上,上面的例子会被编译为: var Days; (function (Days) { Days[Days["Sun"] = 0] =

VHDL顺序语句

倖福魔咒の 提交于 2019-12-03 09:34:58
1、顺序语句的概念 顺序语句的特点是,每一条顺序语句的执行顺序是与它们的书写顺序基本一致的。顺序语句只能出现在进程(process)和子程序中, 子程序包括函数(function)和过程(procedure)。 2.种类 进程语句、赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句。 a.进程语句(process语句) 进程语句是由顺序语句构成的,通过信号与结构体其余部分进行信息交流,在进程中有一个敏感信号列表,表中列出的任何信号的改变都将启动进程, 执行进程内相应的顺序语句。进程语句是将并行语句和顺序语句区分开来的标志之一。 [进程标号:]process [(敏感信号列表)][(variable declarations)]%变量声明 begin 顺序语句; end process; b.赋值语句 赋值语句包括变量赋值语句和信号赋值语句,前者的赋值是立刻发生的,后者的赋值发生在一个进程结束的时刻,并延时进行。 变量赋值目标:=赋值源 信号赋值目标 <=赋值源 在同一进程中,同一信号赋值目标有多个赋值源时,信号赋值目标获得的是最后一个赋值源的值,其前面相同的赋值目标不做任何变化。 signal s1,s2:std_logic; signal sec:std_logic_vector(0 to 7); process(s1,s2) variable v1,v2

《TypeScript入门教程》笔记

不打扰是莪最后的温柔 提交于 2019-12-03 04:27:42
基础 原始数据类型 布尔值 let isDone: boolean = false; 数值 let decLiteral: number = 6; 字符串 let myName: string = 'tom'; null/undefined 1.示例 let myName: null = null; let myName: undefined = undefined; 2.它们是所有类型的子类型 let val: 其它类型 = undefined; 非原始数据类型 空值 1.关键字为void,只能被赋值undefined和null let unusable: void = undefined; 任意值 1.可以赋值为任意类型的值(没有类型限制) let myFavoriteNumber: any = 'seven'; myFavoriteNumber = 7; 2.对任意值进行任何操作,返回值类型都是任意值 3.变量声明时,如果未指定类型 a.未赋值,则会默认为any类型 let something; something = 'seven'; something = 7; b.赋值了,则会被类型推断为所赋值的类型 let myFavoriteNumber = 'seven'; myFavoriteNumber = 7; // 会报错 联合类型 1.表示取值可以为多种类型中的一种 2

Java变量

与世无争的帅哥 提交于 2019-12-03 04:03:20
2.变量 l 变量的概念: 内存中的一个存储区域 该区域有自己的名称(变量名)和类型(数据类型)和值 Java中每个变量必须先声明,再赋值,然后才能使用 该区域的数据可以在同一类型范围内不断变化 Java 中的变量有四个基本属性:变量名,数据类型,存储单元和变量值 变量名: 合法的标识符 变量的数据类型: 可以是基本类型和引用类型(必须包含类型) 存储单元: 存储单元大小是由数据类型决定的,如:int 为4 个字节32 位 变量值: 在存储单元中放的就是变量值(如果是基本类型放的就是具体值,如果是引用类型放的是内存地址,如果null,表示不指向任何对象) l 定义变量的格式:数据类型 变量名 = 初始化值 l 变量是通过使用变量名来访问这块区域的 //int是一种数据类型,是整型。 int a; //在内存中开辟一块空间,这块空间的类型是整型,给这块空间起名叫a //赋值 a = 100; //通过变量名去访问那块内存。 System.out.println(a); //重复访问 System.out.println(a); l 使用变量注意: 变量的作用域:一对{ }之间有效。出了大括号就不认识了。 初始化值 变量可以重复赋值,但不能重复声明,在同一个域中,变量名不能重复。 2.1 关于java中的字面值: 1.什么是字面值? 一眼看上去就知道是多少的数据,就是字面值 2

ES6 -- (2) 变量的解构赋值

时光毁灭记忆、已成空白 提交于 2019-12-03 01:38:37
2019-10-30 学习内容: 一、数组的解构赋值:   1、从数组和对象中提取值,对变量进行赋值,这被称为解构。   2、如果解构不成功,变量的值就等于 undefined 。   3、 不完全解构 :等号左边的模式,只匹配一部分的等号右边的数组。这种情况下,解构依然可以成功。   4、如果等号的右边不是数组(或者严格地说,不是可遍历的结构),那么将会报错。例如: let [foo ] = 1;   5、对于 Set 结构,也可以使用数组的解构赋值。(详见ES6 --(13))   讨论1: 如何实现解构?-- 同样模式进行匹配 let [foo, [[bar], baz]] = [1, [[2], 3]]; foo // 1 bar // 2 baz // 3 let [ , , third] = ["foo", "bar", "baz"]; third // "baz" let [x, , y] = [1, 2, 3]; x // 1 y // 3 let [head, ...tail] = [1, 2, 3, 4]; head // 1 tail // [2, 3, 4] let [x, y, ...z] = ['a']; x // "a" y // undefined z // []   讨论2: 如何给解构指定默认值? let [foo = true] = [];

SystemVerilog语言简介

匿名 (未验证) 提交于 2019-12-03 00:25:02
SystemVerilog是一种 硬件描述和验证语言 (HDVL),它 基于IEEE1364-2001 Verilog硬件描述语言(HDL),并对其进行了扩展,包括扩充了数据类型、结构、压缩和非压缩数组、 接口、断言等等 ,这些都使得 SystemVerilog在一个更高的抽象层次上提高了设计建模的能力 。SystemVerilog由Accellera开发,它 主要定位在芯片的实现和验证流程上,并为系统级的设计流程提供了强大的连接能力 。下面我们从几个方面对SystemVerilog所作的增强进行简要的介绍,期望能够通过这个介绍使大家对SystemVerilog有一个概括性的了解。 1. 接口(Interface) Verilog模块之间的连接是通过模块端口进行的。为了给组成设计的各个模块定义端口,我们必须对期望的硬件设计有一个详细的认识。不幸的是,在设计的早期,我们很难把握设计的细节。而且,一旦模块的端口定义完成后,我们也很难改变端口的配置。另外,一个设计中的许多模块往往具有相同的端口定义,在Verilog中,我们必须在每个模块中进行相同的定义,这为我们增加了无谓的工作量。 SystemVerilog提供了一个新的、高层抽象的模块连接,这个连接被称为 接口( Interface ) 。接口在关键字 interface 和 endinterface 之间定义,它独立于模块