赋值

golang中map的声明与初始化

心不动则不痛 提交于 2020-02-28 09:52:46
第一种: 声明一个key是字符串,值为int的字典,这种方式的声明需要在使用之前使用make初始化 var numbers map[string]int 初始化 numbers = make(map[string]int) var numbers map[string]int numbers = make(map[string]int) numbers["one"] = 1 //赋值 numbers["ten"] = 10 //赋值 fmt.Println(numbers) 另一种: 声明并初始化 number := make(map[string]int) number := make(map[string]int) number["two"] = 2 //赋值 number["five"] = 5 //赋值 fmt.Println(number) 来源: CSDN 作者: 天马行空波 链接: https://blog.csdn.net/jiangbo721/article/details/104533693

C++类的六个特殊成员函数

我们两清 提交于 2020-02-28 00:15:25
1.设置六个函数的参数,先让函数运行起来 // // Created by liuhao on 20-1-1. // #include <iostream> //using namespace std; class Stu { private: std::string name = "无名氏 "; int age = 0; int *d = nullptr; public: Stu() { std::cout << name << age << " 执行了无参构造函数!" << std::endl; }; Stu(int a) { std::cout << name << age << " 执行了有参构造函数!" << std::endl; }; Stu(const Stu &s) { std::cout << name << age << " 执行了拷贝构造函数!" << std::endl; }; Stu &operator=(const Stu &s) { std::cout << name << age << " 执行了拷贝赋值运算符函数!" << std::endl; }; Stu(Stu &&s) { std::cout << name << age << " 执行了移动构造函数!" << std::endl; }; Stu &operator=(Stu &&s) {

重新梳理IT知识之java-05面向对象(一)

前提是你 提交于 2020-02-27 21:02:04
一、Java面向对象学习的三条主线: 1.Java类及类的成员:属性、方法、构造器;代码块、内部类 2.面向对象的三大特征:封装性、继承性、多态性。(抽象性) 3.其他关键字:this、super、static、final、abstract、interface、package、import等。 二、“人把大象装进冰箱” 1.面向过程:强调的时功能行为,以函数为最小单位,考虑怎么做。 2.面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。 三、面向对象的两个要素: 类:对一类事物的描述,是抽象的、概念上的定义 对象:是实际存在的该类事物的每个个体,因而也称为实例(interface) 二者关系:对象,是有类new出来的,派生出来的。 面向对象程序设计的重点是类的设计 设计类,就是设计类的成员。 属性 = 成员变量 = field = 域、字段 方法= 成员方法 = 函数 = method 创建类的对象 = 类的实例化 = 实例化类 四、面向对象思想落地的实现 1.创建类,设计类的成员 2.创建类的对象 3.通过“对象.属性”或“对象.方法”调用对象结构 属性(成员变量) vs 局部变量 1.相同点: 定义变量的格式:数据类型 变量名 = 变量值 先声明,后使用 变量都有其对应的作用域 2.不同点: 在类中声明的位置不同 属性:直接定义在类的一对{}内 局部变量

ES6 解构赋值的用法笔记

江枫思渺然 提交于 2020-02-27 17:24:13
1、概念:解构赋值可以理解为对赋值运算符的一种扩展。它主要针对数组或者 对象进行模式匹配,然后对模式中的变量进行赋值。 2、特性:采用ES6解构赋值的方式可以代码的可读性更高、代码书写更加简洁、清晰。 3、解构模型:分为解构源、解构的目标:解构源=解构的目标 4、解构类型:分为数组类型、对象类型。 数组类型 1.基本用法 let [a,b,c]=[5,15,25]; alert(b);//15 2、嵌套用法 let [a,[b,c],d]=[5,[15,25],50]; alert(c);//25 3、可忽略用法 let [a,,b]=[5,15,25]; alert(b);//25 4、部分解构用法 let [a=5,b]=[10,20]; alert(b);//20 5、剩余运算符用法 let [a,...b]=[10,20,30,40,50]; alert(b);//20,30,40,50 6、字符串用法 let [a,b,c]="how"; alert(a);//h alert(b);//o alert(c);//w 对象类型 1、基本用法 let {name,age}={name="小明",age=25}; alert(name); 2、可嵌套、可忽略用法 let person = {p: ['小明', {age: 25}] }; let {p: [name, { age

C与C++的区别

二次信任 提交于 2020-02-27 15:35:27
C和C++的区别  参考:C Primer plus 6th  在很大程度上,C++是C的超集,这意味着一个有效的C程序也是一个有效的C++程序。C和C++的主要区别是,C++支持许多附加特性。但是,C++中许多规则与C稍有不同。这些不同使得C程序作为C++程序编译时可能以不同的方式运行或者根本不能运行。  C99标准的发布使得问题更加复杂,因为有些情况使得C更接近C++。例如,C99标准允许在代码中的任意处进行声明,而且可以识别//注释指示符。在其他方面,C99使得其与C++的差异变大。例如,新增了变长数组和关键字restrict。C11缩小了与C++的差异。例如,引进了char16_t类型,新增了关键字_Alignas,新增了alignas宏与C++的关键字匹配。C11仍处于起步阶段,许多编译器开发商甚至都没有完全支持C99。要了解它们之间的区别,需要了解C90,C99,C11之间的区别,还要了解C++11与这些标准之间的区别,以及每个标准与C标准之间的区别。下面主要讨论C99,C11和C++之间的区别。由于C++也在发展,因此,C与C++之间的异同也在不断发展变化。 一. 函数原型  在C++中,函数原型是必不可少的,但是在C中是可选的。  C++允许用户声明多个同名函数,只要参数列表不同即可,这是C++的重载特性。但是在C中这是不可以的。 二. Char常量

js 预编译

落花浮王杯 提交于 2020-02-27 15:02:42
js 运行代码的时候分为几个步骤: 语法分析 ==》 预编译 ==》 解释执行 语法解析: 通篇扫描代码,查看语法是否出错 解释执行 : 读一行 - 解释一行 - 执行一行 预编译执行的操作: // 假设之前并没有定义a console.log(a); 打印结果: Uncaught ReferenceError: a is not defined 这个大家应该都知道: 在变量未定义时就对变量进行访问就会报错(typeof 列外) 再看一个例子: 1 // 假设之前并没有定义变量a 2 console.log(a); 3 4 var a = 123; 5 6 console.log(a); 看上面代码会打印什么?会不会报错? 打印结果: undefined 123 为什么这个没有报错:因为在预编译的时候对变量进行了提升即 变量提升。 定义的变量的声明(var a ;)被提到了代码块的最前面,变量的赋值操作(a = 123)没有变化。 所以被编译后就相当于 1 // 假设之前没有定义变量a 2 var a; 3 4 console.log(a); 5 6 a = 123; 7 8 console.log(a); 看下面这个例子: 1 // 假设之前没有定义test 2 console.log(test); 3 4 var test = 123; 5 6 function test ()

final,权限,内部类

北战南征 提交于 2020-02-27 14:55:28
final,权限,内部类 1.final final: 不可改变。可以用于修饰类、方法和变量。 类:被修饰的类,类的内容不能被更改,不能被继承,不能被子类覆盖重写。 方法:被修饰的方法,不能被重写。 注意:abstract和final不能同时存在,因为一个必须被覆盖重写,一个不能被覆盖重写,不能共存。 变量:被修饰的变量,不能被重新赋值。 局部变量:没有默认值,可以分两部赋值,但只能被赋值一次。 注意:对于基础型变量,数值不可改变 ​ 对于应用型变量,地址不可改变 //第一种赋值方法 final int num; num = 5; //第二种赋值方法 final int num = 5; 成员变量:含有默认值0,但是使用final后就不再拥有默认值,只能一次手动赋值或者构造方法赋值,且必须所有重载的构造方法都必须进行赋值。 //手动赋值 final int num = 0 ; //构造方法赋值 final int num ; public 类名() { this . num = num ; } 2.权限 public protected default private 同类(自己) YES YES YES YES 同包(邻居) YES YES YES NO 子类,不同包(儿子) YES YES NO NO 不同包,不同类(陌生人) YES NO NO NO 总结: 只能自己使用

javascript--变量

随声附和 提交于 2020-02-27 12:27:31
变量:可以存储数据的一个容器,可存储和引用任何的数据,存储在内存中以便复用 1.变量的创建:一般来说,要以“var”关键词来修饰声明变量   1)先声明,后赋值 var aa; aa="声明的变量" //在函数中一般涉及到作用域,面向对象编程中可进行变量的重新赋值,(作用域链的作用)   2)声明和赋值同时进行 var aa="我是声明的变量" //直接可用的变量   3)一次声明多个变量再赋值   4)一次声明多个变量同时进行赋值 var name="zhangsan",age=12,sex="boy" 2.命名规范   1)严格区分大小写   2)变量的命名必须以字母或下划线_ 或 $ 开头,其余部分可以是任意的字母,数字,或"_"或"$"   3)不能用关键字或保留字命名   4)命名要有意义 3.注意事项   1)变量的覆盖     a.如果重新声明该变量而没有赋值,该变量的值不会改变 var aa="第一次的变量"; var aa; console.log(aa); //"第一次的变量"     b.如果重新声明的变量并且重新赋值,那么后面的变量会覆盖前面的变量,改为新的变量值 var aa=1; var aa=2; console.log(aa) //2   2)不用var 关键字来修饰变量     aa="我是声明的变量"     如果不用var关键来修饰的变量

JavaScript 变量

断了今生、忘了曾经 提交于 2020-02-27 12:27:19
变量 变量是指程序在运行时,必须暂时地存储一些完成工作所需的信息,在后台运行,不显示运行过程,这些信息就存储在变量中,会根据程序实际运行情况或具体步骤存储在变量里。 编写Javascript代码时,你必须告诉解释器你想要执行的每个步骤。有时候,需要提供给解释器的细节比你想象的要更多。 如果我们要计算一张桌子的面积,用数学公式是:面积=长*宽 例: 我们可以在脑海里计算,可是使用一段脚本让计算机来计算时,必须告诉计算机每一个详细步骤。要告诉计算机执行以下4个步骤。 1.记住桌子的长度 2.记住桌子的宽度 3.将长度乘以宽度,得到桌子的面积 4.将结果返回给用户 我们使用变量来记住桌子的长度和宽度。以后不论什么规格的矩形桌子都可以使用这段脚本来计算,而要做的仅仅是根据桌子的情况更改记录桌子 长度的变量值 的和记录桌子 宽度的变量值 。 我们知道计算机有 内存 和 磁盘 ,数据通常放在磁盘和内存中,但是 变量 放在内存中 ,用于临时保存信息,计算机一关机,变量的数据就没有了。 声明变量 在使用变量之前,需要先声明变量。 声明变量的形式如下: var 变量名; 声明 桌子 长度 的变量 1 var length; 说明:var 是关键字,Javascript解释器知道这个关键字就是用来创建变量的。 length是 变量名 ,也时候也叫 标识符 。 如果变量名包含不止一个单词,则通常采用

ES6学习笔记(一):变量赋值和基本数据类型

两盒软妹~` 提交于 2020-02-27 04:02:44
let和const let和const不存在变量提升 变量一定要在声明后使用,否则报错。 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 变量i是var声明的,在全局范围内都有效。所以每一次循环,新的i值都会覆盖旧值,导致最后输出的是最后一轮的i的值。 var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6 上面代码中,变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6。 暂时性死区(temporal dead zone,简称TDZ) 只要块级作用域内存在let或const命令,则变量会被绑定在这个区域内,不受外层作用域的变量影响。凡在声明之前使用了变量,则会报错。 注意,如果使用了let或const,typeof 就不安全了 var tmp = 123; if (true) { tmp = 'abc'; // ReferenceError let tmp; } 不允许重复声明 let a = 10; var a = 1; /