赋值语句

Shell 变量详解教程之位置变量与预定义变量

好久不见. 提交于 2019-12-11 12:44:52
Shell 变量分为3部分,分别是用户自定义变量、位置变量和预定义变量。 一. 自定义变量   那么,什么是变量呢?简单的说,就是让某一个特定字符串代表不固定的内容,用户定义的变量是最普通的Shell变量。y=3a+2b,就是把3a+2b这个值赋予y。变量名是以字母或下线符打头的,可以从第二位开始加入数字,并且大小写字母意义不同。如dir与Dir是不同的变量。变量名的长度不受限制。比如:expert=Bill,就是将Bill赋值给expert,后来脚本读取变量$expert时,会取值为Bill   注意!!! 在赋值语句中,赋值号“=”的两边不能有空格,否则在执行时会引起错误,这一点就没有python爽。如果在赋给变量的值中要含有空格、制表符或换行符,那么,就应该用双引号把这个字符串括起来。例如, names="abc dd ff" 变量可以使用数字、大小写字母、下划线,但是不能以数字开头。   可以将一个命令的执行结果赋值给变量。有两种形式的命令替换:一种是使用倒引号(esc下面的案件)引用命令,其一般形式是:`命令`。和$(命令)相同   例如:将当前工作目录的全路径名存放到变量dir中,输入以下命令行:   $ dir=`pwd`   另一种形式是:$(命令表)。上面的命令行也可以改写为:   $ dir=$(pwd) 交互变量   利用read命令可以从键盘上读取数据

Java类加载过程

一世执手 提交于 2019-12-10 23:35:33
目录 一、class文件介绍 1.1 文件结构 1.2 简单示例读取class文件 二、类加载步骤 2.1 类加载过程 三、总结 熟悉的面试题,现在看来也显然易见! 类加载过程已经是老生常谈模式了,我曾在讲解tomcat的书中、在Java基础类书、JVM的书、在Spring框架类的书中、以及各种各样的博客和推文中见过,我虽然看了又忘了,但总体还是有些了解,曾经自以为这不是什么大不了的过程。但时间总会教你做人,看得越多,越觉得以前理解不足。 此笔记记录,虚拟机中Java类加载的过程,各个过程发生的时机,具体做了什么事情,例如,在方法区或者堆分配了哪些内存,创建了哪些常量等。由于Java文件会预先编译,得到class文件,虚拟机的类加载,是对class文件进行的操作,所以不可避免的涉及到class文件的解读,只有知道class文件中有什么,虚拟机才能加载对应的内容。 一、class文件介绍 ​ 不可能完全解读class文件,《虚拟机规范第二版》花了一百多页写class文件,这是class的核心,如果要完全理解,可能还得去复习复习编译原理,词法分析语法分析代码生成之类的。 1.1 文件结构 文件结构定义:u1 = 1个字节,u2 = 2个字节,u4 = 4个字节,u8 = 8个字节; ClassFile { u4 magic; // 魔法数 u2 minor_version; //

Go-语言基础-变量-类型

若如初见. 提交于 2019-12-09 17:25:31
第一个程序 //单行注释 /* 多行注释 */ package main // 表示当前go文件属于main包 import "fmt" // 导入包 //编译型语言需要有一个入口文件,main包下的main函数 func main(){ //定义了一个main函数包 fmt.Println("Hello,world!") // 打印hello world //a..编辑器自动填充提供的参数名a,表示可以传多个参数 } // 编译型语言:先编译成编译文件,在执行go.exe文件 运行Go文件: 变量 变量是什么   变量指定了某存储单元(Memory Location)的名称,该存储单元会存储特定类型的值。在 Go 中,有多种语法用于声明变量。 声明单个变量 var name type 是声明单个变量的语法。 定义变量var 第一种: package main //表示是main包的 import "fmt" func main(){ // 定义变量 //方式一:全名称 go语言中,定义了变量必须使用,否者报错 // 固定的格式:var关键字 变量名 变量的类型 = 值 var age int=20 // 完整的变量名声明的方式 fmt.Println(age) } 必须指定数据类型,不然报错 第二种:   简略的声明方式 package main //表示是main包的

ES6上

纵然是瞬间 提交于 2019-12-09 16:35:32
1.let和const命令 1.1let命令 类似于var,let声明的变量只在let命令所在的代码块有效 1.不存在变量提升 2.暂时性死区 使用let声明之前,该变量都是不可用的 3.不允许重复声明 在相同作用域不能重复声明同一个变量,不能在函数内部重新声明变量 1.2块级作用域 1.let实际为JS新增了块级作用域 外层代码块不受内层代码块的影响 ES6规定在块级作用域之中,函数声明类似于let,在块级作用域之外不可引用 2.do表达式 在块级作用域之外没办法得到内层的值,加上do,成为do表达式,可以得到整个块级作用域的返回值 1.3const命令 1.声明一个只读的常量,一旦声明,不能改变,同样也不能只声明而不赋值 作用域和let一样,只在声明的块级作用域有效 2.实际上不是值不能改变,而是变量指向的那个地址不得改动 1.4声明变量的方法:let var const import class function 1.顶层对象的属性 ES6规定var和function声明的全局变量依旧是顶层对象的属性 let/const/class声明的全局变量不属于顶层对象的属性 2.global对象 引入global作为顶层对象,在所有环境下,global都是存在的,都可以拿到顶层对象 2.变量的解构赋值 2.1数组 1.按照一定模式从数组和对象中提取值,然后对变量进行赋值

python基础学习2

梦想的初衷 提交于 2019-12-08 22:26:36
python中的运算符 1、算术运算符:用来做算术运算的符号 ①、+ :求和,也可以做连接符 ②、 - :求差 ③、 * : 求积 ④、 / :求商 ⑤、% :取余 ⑥、// :取整 ⑦、** :次方 注意:只能是数值 print(3*3) #求积结果:9 print(9/2) #相除结果:4.5 print(3**4) #3的4次方,结果:81 print(9//4) #小数部分直接丢掉,取整结果:2 print(13%3) #取余结果:1   运行结果是 9 4.5 81 2 1   比较运算符:用来比较(值只可能是布尔类型[真True或假False]) == > < >= <= !=(不等于) 注意:== 比较字符串时,比较的是字符串的内容,其他比较都是数值(字符串的长度) score = 80 print(score > 90) print(score == 80) print(score >= 60) print(score != 80)   运行结果: False True True False   赋值运算符 = +=(可以做连接符) -= *= **= /= %= //= 注意:赋值运算符的左侧一定是个变量,右侧一定要有个数据 = :将右边的值给左边;其他:将两边的结果给左边 num = 3 #赋值 num += 6 #赋值 print(num) num2 = 3

JS稀奇古怪题目

白昼怎懂夜的黑 提交于 2019-12-08 17:37:31
JS稀奇古怪题目: 1.操作对象属性优先级高于普通赋值操作 1 var a = { 2 n: 1 3 }; 4 var b = a; 5 6 //操作对象属性优先级高于普通赋值操作 7 a.x = a = { 8 n: 2 9 }; 10 11 console.log(a.n, b.n); // 2 1 12 console.log(a.x, b.x); //undefined Object 2.作用域只有局部和全局,没有对象作用域。 只能查找局部和全局作用域 1 var obj = { 2 fn2:function(){ 3 console.log(fn2); 4 } 5 } 6 obj.fn2(); //error: fn2 is not defined 修改绑定当前调用对象obj 1 var obj = { 2 fn2:function(){ 3 console.log(this.fn2); 4 } 5 } 6 obj.fn2(); //function(){console.log(this.fn2);} 3.变量提升 1 var a = 2; 2 function fn(){ 3 //局部变量提升 4 console.log(a); 5 var a = 3; 6 7 } 8 fn(); //undefined 9 10 11 function fn2(){ 12

JAVA 对象引用,以及对象赋值

你。 提交于 2019-12-07 20:01:05
关键字: java对象 引用 Java对象及其引用 关于对象与引用之间的一些基本概念。 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。 为便于说明,我们先定义一个简单的类: class Vehicle { int passengers; int fuelcap; int mpg; } 有了这个模板,就可以用它来创建对象: Vehicle veh1 = new Vehicle(); 通常把这条语句的动作称之为创建一个对象,其实,它包含了四个动作。 1)右边的“new Vehicle”,是以Vehicle类为模板,在堆空间里创建一个Vehicle类对象(也简称为Vehicle对象)。 2)末尾的()意味着,在对象创建后,立即调用Vehicle类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果你没写,Java会给你补上一个默认的构造函数。 3)左边的“Vehicle veh 1”创建了一个Vehicle类引用变量。所谓Vehicle类引用,就是以后可以用来指向Vehicle对象的对象引用。 4)“=”操作符使对象引用指向刚创建的那个Vehicle对象。

var、let和const应该怎么用?

泄露秘密 提交于 2019-12-07 16:49:49
在这篇文章中,我们将介绍两种新的在JavaScript(ES6)中创建变量的方式,即使用let和const。同时,我们将探讨var、let和const之间的区别,以及函数与块作用域、变量提升和不变性等内容。 如果你想观看视频,这是链接: https://youtu.be/6vBYfLCE9-Q ES2015(或ES6)引入了两种创建变量的新方法:let和const。但在我们深入了解var、let和const之间的区别之前,需要先了解一些先决条件。它们是变量声明与初始化、作用域(特别是函数作用域)和变量提升。 变量声明与初始化 变量声明引入了新标识符。 var declaration 我们创建了一个叫作declaration的新标识符。在JavaScript中,刚创建的变量会被初始化为undefined。如果我们在控制台打印变量declaration,将会看到输出undefined。 var declaration console.log(declaration) 与变量声明相反,变量初始化是指首次为变量赋值。 var declarationconsole.log(declaration) // undefineddeclaration = 'This is an initialization' 我将一个字符串赋值给declaration变量,以此来初始化它。

verilog问题二三

橙三吉。 提交于 2019-12-07 16:35:26
assign语句叫连续赋值语句?为什么要叫连续,是由于等式右边是顺序执行的还是因为在执行赋值的过程中,赋值的先后顺序(实际上或者概念上)是有顺序的? 同步(复位)与异步(复位)的具体内涵:异步信号定义:如果信号不能由时钟控制,或者如果它是有不同域中的时钟同步的,那么该信号是异步的; 状态与行为 来源: https://www.cnblogs.com/lizhiqing/p/11963799.html

C/C++——构造函数和析构函数

こ雲淡風輕ζ 提交于 2019-12-07 07:36:47
本文对类的构造函数和析构函数进行总结,主要包括了构造函数的初始化、重载、使用参数和默认参数,拷贝构造函数和析构函数,希望能帮助读者在程序开发中更好的理解类,属 于 C/C++ 基础。 1、 构造函数 构造函数与类名相同,它是一种特殊的成员函数,没有返回值类型和返回值。在对象建立时自动调用,不需要也不能由用户调用。构造函数主要为对象开辟内存空间,完成对象数据成员的初始化。 (1) 、构造函数的初始化 构造函数的主要功能是给对象初始化,初始化有两种方式,一种是用参数初始化列表,这种方式简练;另一种是在构造函数的函数体内对数据成员进行赋值实现初始化,这种方式方便直观。 参数初始化列表初始化 参数初始化列表初始化的形式是在函数的首部的末尾加冒号,然后列出用逗号分隔的数据成员列表初始化表。如: T ::T( int a , int b ) :hour( a ),minute( b ) {} 表示用a初始化hour,用b初始化minute,即 hour=a; minute=b; 虽然后面的花括号是空的,但已经给对象进行了初始化。 注意: ① 对于 const 或引用类型的成员必须在构造函数初始化列表中进行初始化,这是初始化它们的唯一机会, 原因分析在赋值语句初始化段。 ② 不能用参数初始化列表对静态数据成员初始化,而且只能在类外初始化 ,可以像普通数据成员那样通过对象访问,也可以通过类名访问