赋值语句

Go从入门到放弃(笔记存档)

岁酱吖の 提交于 2020-01-07 00:49:46
前言 考虑到印象笔记以后不续费了,这里转存到博客园一份 因内容是自己写的笔记, 未作任何润色, 所以看着很精简, 请见谅 查看官方文档 在新的go安装包中,为了减小体积默认去除了go doc 安装go语言后在DOS中输入 godoc -http=:9000 然后在浏览器中打开 127.0.0.1:9000 即可(不能关闭DOS) 该系列参照了大佬的学习路线,加上本人的代码实践,大佬链接 https://www.liwenzhou.com/posts/Go/go_menu 目录结构 GOPATH > src 代码(pkg包/bin编译后文件) > 域名 > 用户名 > 项目 > 模块 双引号单引号 单引号代表字符 > 'a' 双引号代表字符串 > "abcd" 中文最少3位所以只能用双引号 编译代码 进入目录(项目) go build -o 文件名 main.go main.go是项目主入口 调试代码 go run 文件 设置生成文件的格式(跨平台) 命令行 // 生成linux可执行文件 SET CGO_ENABLED=0 //禁用CGO SET GOOS=linux //设置目标平台为linux SET GOARCH=amd64 //目标架构为amd64 // 生成win SET GOOS=windows // 生成mac SET GOOS=darwin git控制 只需控制

volatile 说明

一个人想着一个人 提交于 2020-01-04 02:51:39
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键字的场景。以下是本文的目录大纲:一.内存模型的相关概念二.并发编程中的三个概念三.Java内存模型四..深入剖析volatile关键字五.使用volatile关键字的场景若有不正之处请多多谅解,并欢迎批评指正。请尊重作者劳动成果,转载请标明原文链接:http://www.cnblogs.com/dolphin0520/p/3920373.html一.内存模型的相关概念大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多

Python 列表

社会主义新天地 提交于 2020-01-03 08:32:18
  1,list函数   因为字符串不能像列表一样被修改,所以有时候根据字符串创建列表会很有用。list函数可以实现这个操作: 1 In [1]: list('Hello')2 Out[1]: ['H', 'e', 'l', 'l', 'o']   提示:可以用''.join(somelist)将一个由字符组成的列表转换为字符串。注意是字符。可以用str()函数转换成字符。   2,基本的列表操作     (1)、改变列表:元素赋值       改变列表很容易。但我们并不会用x=2这样的语句进行赋值,而是使用索引标记来为某个特定的、位置明确的元素赋值,如x[1]=2。 1 In [2]: x = [1, 1, 1]2 3 In [3]: x[1]=24 5 In [4]: x6 Out[4]: [1, 2, 1]       注意:不能为一个位置不存在的元素进行赋值。如果的列表长度为2,那么不能为索引为100的元素进行赋值。如果要那样做,就必须创建一个长度为101(或者更长)的列表。     (2)、删除元素       用del语句即可。     (3)、分片赋值       分片是一个非常强大的特性,分片赋值操作则更加显现它的强大。 1 In [5]: name = list('Perl')2 3 In [6]: name4 Out[6]: ['P', 'e', 'r', 'l

面试被怼?还搞不懂JVM?阿里架构师带你掌握JVM类加载机制

大城市里の小女人 提交于 2020-01-01 04:44:31
本文转载自: 面试被怼?还搞不懂JVM?阿里架构师带你掌握JVM类加载机制 一、类的生命周期 类的生命周期包含下面7个阶段,其中前五步属于类加载阶段: 加载 验证 准备 解析 初始化 使用 卸载 二、类加载阶段 1. 加载 加载阶段,虚拟机做了以下3件事情: 通过一个类的全限定名来获取定义此类的二进制字节流; 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口 简单一句话概括:把代码数据加载到内存中,加载完成后,在方法区实例化一个对应的Class对象。 延伸知识点 相对于类加载过程的其他阶段,一个非数组类的加载阶段(准确地说,是加载阶段中获取类的二进制字节流的动作)是开发人员可控性最强的,因为加载阶段既可以使用系统提供的引导类加载器来完成,也可以由用户自定义的类加载器去完成,开发人员可以通过定义自己的类加载器去控制字节流的获取方式(即重写一个类加载器的loadClass()方法)。 对于数组类而言,情况就有所不同,数组类本身不通过类加载器创建,它是由Java虚拟机直接创建的。但是数组类的元素类型(Element Type,指的是数组去掉所有维度的类型)最终是要靠类加载器去创建,如果数组的组件类型不是引用类型(例如int[]数组)

Python的循环语句

可紊 提交于 2019-12-31 23:45:44
01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下 ,顺序执行代码 分支 —— 根据条件判断,决定执行代码的 分支 循环 —— 让 特定代码 重复 执行 02. while 循环基本使用 循环的作用就是让 指定的代码 重复的执行 while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行 需求 —— 打印 5 遍 Hello Python 思考 —— 如果要求打印 100 遍怎么办? 初始条件设置 —— 通常是重复执行的 计数器 while 条件(判断 计数器 是否达到 目标次数): 条件满足时,做的事情1 条件满足时,做的事情2 条件满足时,做的事情3 ...(省略)... 处理条件(计数器 + 1) 注意 : while 语句以及缩进部分是一个 完整的代码块 第一个 while 循环 需求 打印 5 遍 Hello Python # 1. 定义重复次数计数器 i = 1 # 2. 使用 while 判断条件 while i <= 5: # 要重复执行的代码 print("Hello Python") # 处理计数器 i i = i + 1 print("循环结束后的 i = %d" % i) 注意:循环结束后,之前定义的计数器条件的数值是依旧存在的 死循环 由于程序员的原因, 忘记 在循环内部 修改循环的判断条件

JS--我发现,原来你是这样的JS(三)(基础概念--灵魂篇)

£可爱£侵袭症+ 提交于 2019-12-30 05:28:33
一、介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第三篇(灵魂篇介绍),有着剩下的第三章的知识内容。 红宝书这本书可以说是难啃的,要看完不容易,挺厚的,要看懂更不容易,要熟练js更是难,中间需要不断的积累与重温。 本书不是读一两遍就能把这书吃透,需要多读,可谓温故而知新,可以为师矣。 很多人看这些厚的书都是三天打鱼两天晒网,很少能看下去,能记住的东西往往前3章的内容,所以我写博客就是为了能和大家一起来读这本书,一起学JS。 二、基本概念(灵魂篇) 上一篇是躯壳篇讲的是一些了解性的东西,而接下来便说内涵(数据类型和操作符),换作中文来看就如同让你理解词和含义,语句的含义,就像将这些字和语句注入灵魂。 同系列: 第一篇:JavaScript--我发现,原来你是这样的JS(初识) 第二篇:JavaScript--我发现,原来你是这样的JS(基础概念--躯壳篇) 三、数据类型 js的数据结构有6种,5种基本类型和一种复杂类型。js中不支持任何自定义的数据类型,所以说就这6种就够了。 5种基本数据类型: Undefined Null Boolean Number String 1种复杂类型: Object类型 1.1 typeof操作符 该操作符可以检测某变量是什么数据类型。 typeof返回的值: "undefined" -- 表示这个值没有被定义 "string"

数组的解构赋值

社会主义新天地 提交于 2019-12-30 02:16:38
数组的结构赋值 let a = 1; let b = 2; let c = 3; //ES6 允许写成下面这样。 let [a, b, c] = [1, 2, 3]; 这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值 嵌套写法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 // [] 如果解构不成功,变量的值为undefined。以下两种情况都属于解构不成功,foo的值都会等于undefined。 let [foo] = []; let [bar, foo] = [1]; 另一种情况是完全不解构,即等号左边的模式只匹配一部分等号右边的数组,但依然可以解构成功。例如下面代码。 let [x, y] = [1, 2, 3]; x // 1 y // 2

Oracle数据类型

自闭症网瘾萝莉.ら 提交于 2019-12-29 10:22:23
Oracle数据类型 数据类型(datatype)是列(column)或存储过程中的一个属性。 Oracle支持的数据类型可以分为三个基本种类:字符数据类型、数字数据类型以及表示其它数据的数据类型。 字符数据类型 CHAR CHAR数据类型存储固定长度的子符值。一个CHAR数据类型可以包括1到2000个字符。如果对CHAR没有明确地说明长度,它的默认长度则设置为1.如果对某个CHAR类型变量赋值,其长度小于规定的长度,那么Oracle自动用空格填充。 VARCHAR2存储可变长度的字符串。虽然也必须指定一个VARCHAR2数据变量的长度,但是这个长度是指对该变量赋值的的最大长度而非实际赋值长度。不需要用空格填充。最多可设置为4000个字符。 因为VARCHAR2数据类型只存储为该列所赋的字符(不加空格),所以VARCHAR2需要的存储空间比CHAR数据类型要小。 Oracle推荐使用VARCHAR2 NCHAR和NVARCHAR2 NCHAR和NVARCHAR2数据类型分别存储固定长度与可变长度的字符数据,但是它们使用的是和数据库其他类型不同的字符集。在创建数据库时,需要指 定所使用的字符集,以便对数据库中数据进行编码。还可以指定一个辅助的字符集[即本地语言集(National Language Set,简称NLS)]。NCHAR和NVARCHAR2类型的列使用辅助字符集。

C++之类和对象的使用(三)

本秂侑毒 提交于 2019-12-29 04:49:25
   对象数组 如果构造函数只有一个参数,在定义数组时可以直接在等号后面的花括号内提供。Student stud[3]={90,92,01};//合法 如果构造函数有多个参数,则不能用在定义时直接所提供所有实参的方法。 但可以如下定义: //构造函数有三个参数:学号,年龄,成绩 Student stud[3]{ Student(1000,19,22); Student(1001,19,22); Student(1002,19,22); };   对象指针 指向对象的指针 class Box {public: Box(int h=10,int w=10,int len=10); int s; int volume(); private: int height; int width; int length; }; Box::Box(int h,int w,int len) { height=h; width=w; length=len; } int Box::volume(){ return(height*width*length); }Box *ptr;//定义指向对象的指针Box t1;//定义Time类对象ptr=&t1;//将t1的起始地址赋给ptr 指向对象成员的指针 1)指向对象数据成员的指针 定义的一般形式为: 数据类型名 *指针变量名; int *p1; p1=&t1

A Tour to LLVM IR

百般思念 提交于 2019-12-28 17:12:28
https://zhuanlan.zhihu.com/p/66793637 https://zhuanlan.zhihu.com/p/66909226 内容概要 什么是LLVM IR?如何得到IR? LLVM编译的流程,IR文件之间的链接简介 C++ name mangling的用途,“extern C"作用的极简介绍 IR文件的布局 IR中函数定义的结构,什么是BB,什么是CFG IR是一个强类型语言,如何用工具检查IR的合法性 如何理解 Language reference 常见的terminator instruction介绍 如何利用工具得到函数的CFG 什么是SSA?SSA的好处和问题,以及如何解决这个问题 参考文献 what is tail reursion make clang compile to ll -cc1的含义 clang和clang++的区别 what is a linkage unit? LLVM LanguageRef extern "C"的作用 what is name mangling what is static single assignment? what is reaching definition? 1. 什么是LLVM IR? LLVM IR 是 LLVM Intermediate Representation,它是一种 low