自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 goland以package形式 编译代码

命令源码文件:独立程序的入口 包含无结果无参数的main函数库源码文件:放置可供其他代码使用的程序实体goland以package形式 编译代码1.配置gopath在File菜单里找到settings,点击gopath!配置如下:2.项目结构如下,需创建三个文件夹:bin pkg srcsrc:放置源文件bin:存储可执行文件pkg:放置归档文件 :在Linux下是.a文件,即程序编译后生成的静态库文件。3.配置gobuild程序即可运行。...

2021-01-08 23:03:26 1122

原创 go语言初探 十三

并发编程并发与并行Erlang 之父 Joe Armstrong曾经以下图解释并发与并行。并发在图中的解释是两队人排队接咖啡,两队切换。并行是两个咖啡机,两队人同时接咖啡。“Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.” — Rob Pike并发使并行变得容易,并发提供了一种构造解决方案的方法,并行一般伴随这多核。并发一般伴随

2020-12-26 23:14:39 160 1

原创 go语言初探 十二

单元测试在日常开发中,我们通常需要针对现有的功能进行单元测试,以验证开发的正确性。 在go标准库中有一个叫做testing的测试框架,可以进行单元测试,命令是go test xxx。测试文件通常是以xx_test.go命名,放在同一包下面。测试这块不是很懂。测试的方法:1.基准测试2.mock/stub测试3. 直接替换4.浏览器实时测试测试,个人理解,就是用极端的测试样例去验证代码的正确性。...

2020-12-25 21:35:19 168

原创 go语言初探 十一

反射反射是什么反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型,这称为反射机制不是很理解反射,不懂这个有什么用。感觉这个就和运行时申请内存差不多?反射的作用1.在编写不定传参类型函数的时候,或传入类型过多时2.不确定调用哪个函数,需要根据某些条件来动态执行反射的实现Go的反射基础是接口和类型系统,Go的反射机制是通过接

2020-12-24 22:04:54 61

原创 go语言初探 十

异常errorGo语言内置了一个简单的错误接口作为一种错误处理机制,接口定义如下:type error interface {Error() string}它包含一个 Error() 方法,返回值为stringGo的error构造有两种方式,分别是第一种:errors.New()err := errors.New(“This is an error”)if err != nil {fmt.Print(err)}第二种:fmt.Errorf()err := fmt.Errorf(“

2020-12-23 21:42:11 73 1

原创 go语言初探 九

包管理Go语言通过包管理来封装模块和复用代码,这里我们只介绍Go Modules管理方法Go Modules于Go语言1.11版本时引入,在1.12版本正式支持,是由Go语言官方提供的包管理解决方案Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性。常用命令go mod init // 初始化go.modgo mod tidy // 更新依赖文件go mod download // 下载依赖文件go mo

2020-12-22 21:44:08 62

原创 go语言初探 八

结构体、方法、接口Go 语言中没有“类”的概念,也不支持像继承这种面向对象的概念。但是Go 语言的结构体与“类”都是复合结构体,而且Go 语言中结构体的组合方式比面向对象具有更高的扩展性和灵活性。结构体定义:type identifier struct {field1 type1field2 type2…}结构体实例创建s1 := new(Student) //第一种方式s2 := Student{“james”, 35} //第二种方式s3 := &Student { //第

2020-12-21 21:58:29 233

原创 go语言初探 七

函数在go语言中函数定义格式如下:func functionName([parameter list]) [returnTypes]{//body}函数由func关键字进行声明。functionName:代表函数名。parameter list:代表参数列表,函数的参数是可选的,可以包含参数也可以不包含参数。returnTypes:返回值类型,返回值是可选的,可以有返回值,也可以没有返回值。body:用于写函数的具体逻辑参数传递跟C++一样:值传递,引用传递,指针传递在go语言中支持

2020-12-20 21:46:10 66

原创 go语言初探 六

数组和切片数组就不细讲, 几乎每种语言都有。编译期间确定大小,而且类型相同。不初始化的话,编译器会把数组各个值置为0。数组定义://方式一var arr1 = [5]int{}//方式二var arr2 = [5]int{1,2,3,4,5}//方式三var arr3 = [5]int{3:10}赋值的话还是通过循环赋值。for i := 0; i < len(arr1); i++ {arr1[i] = i * 10}遍历数组for index, value := rang

2020-12-19 20:28:13 118 1

原创 go语言初探 五

单位签订

2020-12-18 21:55:59 86 1

原创 go语言初探 四

都是

2020-12-17 21:14:05 67

原创 go语言初探 三

说真的看到go的语法后,我还有点不习惯,感觉它的语法规则很奇怪。但或许就是这样的语法规则让它的执行速度变快?这也未可知。在go里有变量和常量,但没有枚举。枚举可以用关键字const去模拟。常量只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。 编译器可以根据变量的值来判断类型。go里面声明变量的方式也挺奇怪:var valuename typeitoa,一个特殊常量,在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota

2020-12-16 21:56:23 72

原创 C++ 基本概念总结

1.命名空间。 namespace,C++中的关键字,它是为了解决命名冲突而出现的。在大型项目中,不同的程序员可能会取相同的名字,在将代码结合在一起时会引发命名冲突。通过namespace可以定义命名空间,以区分不同人定义的相同变量、函数、类、typedef、#define等。定义形式:namespace name { //variables,functions,classes }   ::,称为域解析操作符,在C++中用来指定要使用的命名空间   using,可以用这个关键字来声明命名空间。

2020-12-15 21:39:46 1652

原创 go语言初探 二

go语言里面有个很有意思的类型:复数 complex128 和complex64 分别是64位实数和虚数 32位实数和虚数 实数和虚数都是float类型。 复数可以用==和!=比较。在C++里面是需要自己定义的。go的类型也有许多新概念:接口类型: interfaceChannel类型 可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯。操作符是一个箭头**<-**。还有切片类型和map类型。go的整型也挺丰富,主要是位数和符号的不同。如下所示:Uint8无

2020-12-15 21:34:14 79

原创 go语言初探 一

go的知识点如下:1.数据类型、关键字、标识符2.变量、常量、枚举3.运算符、控制语句4.字典、字符串5.数组。切片* :go独有!6.函数7.结构体、方法、接口 面向对象思想8.包管理9.异常处理10.反射机制 在函数中方便得到类型11.单元测试12.并发编程...

2020-12-14 17:17:11 90

原创 C++入门简介

学了C++这么久,一直想作下总结,可是不知道从哪里下手,当然现在也是。我会尽己所能,将自己理解的部分用文字诉说出来。计算机的智商其实不高,它只能接受二进制的指令,即0和1的排列组合。计算机遵循冯诺依曼结构:输入设备,存储器,输出设备,运算器和控制器。输入设备有键盘,鼠标等。存储器有内存条和硬盘等。输出设备有显示屏,打印机等。运算器有算术逻辑单元(ALU)、累加器、状态寄存器和通用寄存器等。而控制器则包括CPU等。可以说,这五大部件是如今计算机的基本架构。简单来说,计算机就是通过一系列计算,将你输入的数据变

2020-09-16 13:08:33 72

原创 LeetCode118杨辉三角

这道题的思路很明确,就是上一行的俩个数加起来等于下一行的一个数。区别就是实现方式的不同,当然还有其他思路。再就是注意numRows为0的情况以及输出格式。创建二维向量:vector<vector>ans;此时 ans为空。创建一维向量vector init;init.push_back(1);ans.push_back(init);可以看出,push_back既可以压入单个数据又可以压入一维向量。vector.clear();可以清除向量中的数据。注意,当使用vector

2020-06-09 12:05:13 96

原创 递归与迭代

递归,就是自己调用自己。优点是代码量少,缺点是空间复杂度大。迭代,通过循环,不断地通过旧值推出新值。

2020-05-25 17:18:59 95

原创 迭代器和容器

C++中有个容器类。何为容器类,在现实生活中,容器,可以装载其他事物。同理,在C++中,容器是指持有其他对象的对象(禁止套娃)。说白了,容器就是存储对象的储存柜。对象,小的方面可以理解为一个变量,大的方面可以理解为一个类。而迭代器的作用是对元素进行灵活的访问,它的工作就是在容器中挑选元素并将其呈献给迭代器的使用者。作为一个类。(迭代器居然是个类,有意思。)迭代器提供了一层抽象。这样就将容器内部细节...

2020-05-05 18:08:00 555

原创 LeetCode 最长公共子串

其实这道题的思路很简单,就是将第一个字符串作为源字符串,然后将其与剩下的字符串逐一比较,找出相同的字符串。另外就是注意如果字符串数组是否为空。主要是实现方式的区别。在这道题中我知道了迭代器的用法,这是我没注意的,之后写个博客。另外就是substr函数。这是一个复制字符串函数,刚开始我还以为是切割字符串函数。它的作用是复制自定义长度的字符串。代码就不贴了,毕竟自己实现的方式太复杂了 。 唉 ...

2020-05-05 15:02:57 451

原创 操作系统总结

操作系统是硬件的管理者和调用者,是软件和硬件连接的桥梁。操作系统有进程管理、设备管理、内存管理、文件管理等功能。进程是运动的程序,用PCB来管理进程。内存有磁盘,内存条,缓存,寄存器,cache等。进程之间需要通信,可以通过消息等。设备管理主要是输入输出型设备,如键盘,鼠标等。文件管理可以运用目录结构。...

2020-05-04 22:04:26 65

原创 C++知识点总结

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200422211011803.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNjQyOTcy,size_16,color_FFFFFF,t...

2020-04-22 21:11:27 77

原创 面向对象与面向过程

面向过程:一种以过程为中心的编程思想。面向对象:将相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模。简单来说,面向过程关注的是事物的发展流程。从步骤的联系出发,找到一条从起点到终点的路。比如你要从家到学校,中间有好几个中转点,怎么从上一个点到下一个点,这是你需要考虑与关心的。中间乘坐的交通工具,就是C中的函数。函数定义的是操作,即将输入变成输出。它是具体的。只能适用于一种情况。...

2020-01-06 15:01:30 118

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除