自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 初探go中序列化使用注意点(json篇)

说到json,其实我们不得不说的是序列化,因为json就是序列化的一种协议。序列化的目的是为了对象可以跨平台存储和进行网络传输,而网络传输是需要二进制字节这个形式的。那么在进行网络传输之前,就需要把对象转换成二进制字节,这个过程就是序列化的过程。在使用方将对象转成二进制字节及接收方收到后将字节恢复的过程中,就需要两方规定好转换的规则,而这种规则就是所谓的协议。(说句题外话,之前看一种说法说盗墓笔记里面的胡八一为什么按照风水学可以找到大墓呢?

2023-10-22 17:58:02 159

原创 go中context详解

这里需要注意的是,go中处理请求每一次都会有一个context(翻译叫做上下文,这个名字就很能凸显context的作用,在go的程序中单个的goroutine只能算作处理逻辑的单元,因为对于一个请求可能会经过多个goroutine来处理,当进行到某一步的时候需要知道我进行到这一步时之前步骤对于一些值或者逻辑的处理,所以这个名字很恰当)对于很多熟悉go的人来说context是一个简单的功能点,但是一般简单的东西也有很多值得关注学习的地方,本篇本章就是针对context的设计及目标进行思考及剖析。

2023-10-01 10:31:05 128

原创 Java转Go语言 -13

goroutine 和 channel并发,并行和协程1)协程和线程没有对应关系,协程是根据一个或多个线程的可用性,映射(多路复用,执行于)在他们之上的;协程调度器在 Go 运行时很好的完成了这个工作。2)只有 gc 编译器真正实现了协程,适当的把协程映射到操作系统线程。使用 gccgo 编译器,会为每一个协程创建操作系统线程。协程间的信道1)通道是为了避免使用共享变量来通信而创建的2)通道只能传输一种类型的数据3)通道也是引用类型4)单纯地out<-和<-in都会阻塞,只有两个

2021-01-25 21:30:19 144

原创 Java转Go语言 -12

The way go to go 的十三章总结错误处理与测试相对于Java的try/catchGo自己有一套 defer-panic-and-recover机制相对于java,Go对于错误的处理:1) 不会从底层抛异常到更高层(太耗费资源)2)通过在函数和方法中返回错误对象作为它们的唯一或最后一个返回值——如果返回 nil错误处理错误值是用来表示异常状态也可以自定义错误状态,fmt.Printf会自动调用String()方法所以可以打印出来。注意 你自己的错误信息不要大写字母开头如果想

2021-01-21 21:18:58 381 1

原创 Java转Go语言 -11

读写数据在Go语言中用到bufio包来处理缓冲的输入和输出。读取用户的输入Scanln扫描来自标准输入的文本,将空格分隔的值依次存放到后续的参数内,直到碰到换行。Scanf第一个参数用作格式字符串,用来决定如何读取。这一节就讲了讲如何读取输入。*注意:*Unix和Windows的行结束符是不一样的。读文件文件拷贝注意: defer的使用从命令行读取参数JSON数据格式JASON被用于web后端和浏览器之间的通讯。GO语言的json包可以在程序中更方便地读取和吸入JSON数据。注意

2021-01-21 16:08:00 103

原创 Java转Go语言 -10

接着第九部分总结类型判断:type-switch处理来自外部的,类型未知的数据时,比如解析XML或者JSON编码的数据,类型测试和转换很有用。测试一个值是否实现了某个接口1)在Go语言中 接口将类型能做什么和如何做分离开来,这就是多态的本质2)注意 这里的说法,测试 (一个值)是否实现了某个接口,并不是某个对象使用方法集与接口作用于变量上的方法实际上是不区分变量到底是指针还是值1)指针方法可以通过指针调用2)值方法可以通过值调用3)接收者是值的方法可以通过指针调用,因为指针会首先被解引用

2021-01-21 15:23:40 217

原创 Java转Go语言 -9

The way go to go 第十一章总结 接口(interface)与反射(reflection)接口是什么接口值=一个具体的类型(动态类型) 类型的值(动态值)这两部分组成对于接口的零值,类型和值的部分都是nil接口值本质是一个指针,但是指向接口值的指针是非法的。var w io.Writerw = os.Stdout// 1)将*os.File类型的值给了ww = new(bytes.Buffer)// 2)*bytes.Buffer的值付给接口值w = nil// 3)这

2021-01-18 15:18:45 514

原创 Java转Go语言 -8

The way go to go 第十章总结(结构和方法):结构体定义数组也是可以看做结构体的,不过它使用下标而不是具体的字段还是之前的一个注意点,创建方式有两种1) var t *T = new(T) 这种事分配内存,返回指向已分配内存的指针,t := new(T), t是指向T的指针,结构体里面是所属类型的零值;2)var t T 也会分内存,零值化,但返回的是类型T不是指针。注意: struct变量.成员 或者struct指针.成员 来访问变量(其实我这点有点不理解,为什么指针.的

2021-01-17 20:29:13 318

原创 Vue官方文档阅读总结-2

模板语法在底层的实现上,Vue将模板编译成虚拟DOM渲染函数。结合响应系统,Vue能够只能地计算出最少需要渲染多少组件,并把DOM操作次数降低到最小。插值1)可以只用双大括号2)可以使用原始HTML —但是需要使用v-html指令3)对于attribute需要使用 v-bind指令4)也可以直接使用js表达式注意:只能使用表达式,而且双大括号里面必须是单个表达式指令1)定义:带有v-前缀的特殊attribute,用于单个Js表达式(除去for)作用: 当表达式的值改变的时候,响应式地作

2021-01-16 21:57:23 78 1

原创 Vue官方文档阅读总结-1

Vue是更好的组织和简化web开发,关注的核心是MVC模式中的视图层,同时,它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互。(或者说用尽可能简单的API实现响应的数据绑定和组合的试图组件)Vue和Js的联系Vue本质上就是JS所构成的一个框架Js使用的时候需要首先获取Dom对象,然后对Dom对象进行值的修改操作Vue是先把值和js对象绑定,然后修改js对象的值,Vue框架就会自动把Dom的值更新。Vue的好处是将数据层和视图层完全分开(只关注视图层),针对数据操作而不是频

2021-01-14 17:23:46 247

原创 JS HTML DOM总结

HTML DOM 定义了访问和操作HTML 文档的标准方法。 DOM 以树结构表达HTML 文档。HTML DOM可以访问所有的元素。提供给Javascript用来动态修改文档状态。查找HTML元素的方法是:1)通过id2)通过标签名3)通过类名怎么说呢,我还是蛮讨厌菜鸟教程这种教授方式的,只会教你一些语法,不告诉你这个到底是干什么的。让人学到最后就学会了一堆记不住的语言。所以菜鸟教程更像是一个快速api一样的东西。引用的那篇文章写得很不错,大概总结一下吧。js就像一个魔法师一样,会动态修改

2021-01-12 22:16:27 80

原创 Java转Go语言 -7

The way go to go 第九章总结标准库概述就是一些包的概述regexp包一般情况下,必须先将正则模式通过compile方法返回一个regexp对象锁和sync包map在Go中是不安全的跟锁的设计很像 sync.Mutx 是一个互斥锁,RWMutex是一个读写锁使用锁的情况当然会导致效率问题,goroutines和channels就要派上用场了(Go中提倡的用来实现并发的技术)精密计算和big包关注点:Go也是不支持运算符重载运算可以链式调用不必创建临时变量来存储,节省

2021-01-12 20:47:32 109

原创 Java转Go语言 -6

The way go to go 第八章总结之前一章总结了数组和切片。但是没有深度思考,就比如说为什么Go中数组被设计成值而不是设计成引用?像这样的问题。思考了一下,array固定长度,一旦被初始化分配好了,就固定占用那么多内存空间,是连续的,不能缩短或者加长。但是slice不一样,他实现了动态伸缩数组的需求。可以这样说,array用于底层设计,我们平时使用就使用slice就可以了(同时Go语言也一直按时“不要使用array”)Map概念申明,初始化和makemap是引用类型 内存用mak

2021-01-12 16:21:05 95 1

原创 Java转Go语言-5

The way go to go第七章总结数组与切片针对容器切片是建立在Go语言数组类型之上的抽象声明和初始化数组长度最大是2GbGo中数组是一种值类型,换句话说当数组作为参数传递给函数的时候,会发生拷贝现象(与C不同的地方),想要修改的话,利用&,或者生成数组切片。可以取任意数组常量的地址来作为指向新实例的指针切片切片是一个长度可变的数组切片是引用(类似于C中的数组类型,java中的数组同样属于引用)注意new和make之间的区别:new函数分配内存;返回指针,获

2021-01-11 16:36:42 136

原创 深入了解闭包思想

前几天在学习JavaScript并且复习Go语言,都看到了一个闭包的概念,因为之前一直使用的是java,同时觉得闭包应用很有趣,就想探究一下闭包在java中的使用。因为作者水平有限,如有不足之处请赐教。首先是闭包的定义:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境),简单来说引用环境是外部(为一个外部变量),函数是内部,这样的说法有助于我们理解之后说的内容。对于 闭 的理解:闭,封闭的不是外部空间,一个函数怎么可以封闭外部空间呢?封闭的是内部空间(举个例子,你在国内隔离,

2021-01-11 11:25:15 190 1

原创 Java转Go语言 -4

The way go to go的六章总结函数(function)介绍Go语言是编译型语言,编译成机器语言,优点是执行速度快。(C语言)Java是解释性语言,先编译成class文件,然后根据不同的操作系统再进行解释。函数参数,返回值以及返回值的类型被称为函数签名;Go中不允许函数重载;(重载需要类型匹配影响性能;这样的话,只需要函数调度)函数可以相互比较(前提是引用的是相同函数或者nil);但是不能嵌套(解决方案是会用匿名函数)Go没有泛式,最好是为每一个类型单独创建一个函数,这样代码可读性

2021-01-10 21:08:55 335 1

原创 Java转Go语言 -3

The way go to go第五章总结if-lese关键字 if 和 else之后的左大括号必须和else if关键字在同一行runtime.GOOS可以用来判断操作系统类型简短方法 := 声明的变量的作用域只存在于 if 结构,会覆盖外面的定义测试多返回值函数的错误这个叫 comma,ok模式,之前看其他书的时候没有发觉到这个的好处,以为仅仅是返回多个值而已,但是更加重要的好处是:表示是否执行成功。这个模式基于:程序应该在最接近的位置检查所有相关的错误错误发生之后,os.Exi

2021-01-10 15:41:29 391

原创 AJAX总结

AJAX是方法,解决不重新加载整个页面的情况下,更新部分网页内容。XMLHttpRequest对象用于和服务器交换数据(指定使用GET或者POST 以及同步还是异步)AJAX的核心是XMLHttpRequest总结:学完菜鸟教程上的这部分的知识,才发现还是很简单的,之前总是搞不清楚AJAX现在终于搞清楚了,还是没有系统学习的缘故,其实就是一个对请求的处理,所以上边才说只是一个新的方法。但是纸上得来终觉浅,还是需要多加使用,很多还没有搞清楚。...

2021-01-09 22:16:22 50

原创 JS函数总结

JS 函数定义注意这个匿名函数的调用方式;对于函数的调用,可以不必使用构造函数,在JS中很多时候需要避免使用new关键字;函数也可以提升;函数也可以自调用函数也可以看成一个对象(使用typeof),如果用于创建新的对象,称之为对象的构造函数箭头函数 没有自己的this 不能创建对象(没有构造方法)JS函数参数参数分为显示参数和隐式参数(注意没有指定数据类型和不进行类型检测这两点)注意隐式参数设置默认值为什么要设置隐式参数呢?我猜想可能是有些参数过多的原因,同时arguments函数

2021-01-09 21:42:40 71

原创 JavaScript -3

JS表单服务端数据验证是在数据提交到服务器上后再验证。客户端数据验证是在数据发送到服务器前,在浏览器上完成验证。HTML5新增了 约束验证,是表单被提交时浏览器用来实现验证的一种算法。基于:HTML输入属性CSS伪类选择器DOM属性和方法JS表单验证提取数据的时候稍微有点不一样,但是逻辑处理上面都是一样的。JS验证APIJS保留关键字JS this 关键字这个还是有点不一样的,比如说this单独使用的时候,表示的是全局对象。JS let和constlet增加了块级作用域的概念,也

2021-01-09 18:40:31 69

原创 JavaScript-2

JavaScript if else 语句跟java一样的JavaScript switch语句JavaScript for循环For/In 循环 需要注意一下 这个就是foreach循环JS while循环注意: 通过标签引用,break语句可用于跳出任何JS代码块JS typeof null undefinedtypeof 即使返回类型的任何变量都可以通过设置值为undefined来清空,类型为undefinedundefined 和null 类型不同 值相同JS 类型转换6中不

2021-01-08 20:21:44 65

原创 JavaScript-1

学习Vue要求知道HTML和CSS还有JavaScript。那么他们三个有什么联系呢?HTML:是用来描述网页的一种语言;CSS:样式定义如何显示HTML元素;JavaScript:是一种脚本语言,其源代码在发往客户端运行之前不需要经过编译,而是将文本格式的字符代码发送给浏览器解释运行。简单地说,HTML定义了网页的内容,CSS描述了网页的布局,JavaScript描述网页的行为JavaScript简介:JavaScript用法HTML中的脚本必须位于script和script标签之间注意

2021-01-08 18:03:44 56

原创 CSS-3

我再也不瞎立flag了CSS提示工具没什么好记录的,用的时候就再看看就好了啊CSS图片廊用来创建图片阅览CSS图像透明/不透明对于图像的呈现高级形式的书写CSS图像拼合技术很多图片的网页可能需要很长时间来加载和生成请求合成图片的话 减低服务器的请求数量 节省带宽CSS媒体类型就是讲不同设备显示问题,特殊情况特殊处理CSS属性选择器选择需要的某些属性,做出一些修改CSS表单就是渲染HTML的表单元素CSS计数器就是创建一个可以递增的值,这个可以重置 嵌入CSS网页布局不是

2021-01-08 15:03:27 61

原创 Java转Go语言-2

今天接着昨天看的内容往下看,看多少随缘吧,毕竟还有毕业论文要修改的。Go程序的执行顺序如下1)按顺序导入所有被 main 包引用的其它包,然后在每个包中执行如下流程:2)如果该包又导入了其它的包,则从第一步开始递归执行,但是每个包只会被导入一次。3)然后以相反的顺序在每个包中初始化常量和变量,如果该包含有 init 函数的话,则调用该函数。4)在完成这一切之后,main 也执行同样的过程,最后调用 main 函数开始执行程序。Go语言中不存在隐式类型转换,都必须是显示转化编译期间自

2021-01-07 13:45:43 201

原创 Java转Go语言的总结

去年9,10月份的时候,抽空学习了一下Go语言,但是后来忙于学会论文投稿的事情,最近就没有学习Go,现在用Go做做实战项目,结果发现很多都忘记了(而且之前的电脑坏掉了,写的那些代码也没有留下来),于是打算这几天抽空看一下Go语言。之下就是一些总结(这次换了一本书 the way go to go)Go编译器产生的是本地可执行代码(机器码),运行在runtime上,相当于java的虚拟机,Go的runtime嵌入到了每一个可执行文件中。Go不需要依赖其他的文件,他是静态链接的(将运行需要的函数代码都放到

2021-01-06 21:25:18 945

原创 GitHub使用感想加转载

怎么说呢,感觉学习编程好几年了,对于Github这个一直是处于了解,而不去使用的状态,想了想大概是对于新的东西抱着不想费力去学习的想法和懒得看英文这两种态度把。2020年秋招的时候,找到了一份还算不错的工作,但是要从java转到Go,最近这几个月也是看了看几本关于Go的书籍,但是总觉得是没有项目或者说实战的话,掌握还是不牢靠的,找着找着最后还是觉得Github需要拿来学习学习了。第一就是清楚一下上边的结构build/ 构建脚本dist/ 编译出来的发布版docs/ 文档examples/ 示例文件

2021-01-05 15:52:05 62

原创 CSS-2

今天争取把CSS的基础看完,任务可能有点严重,我发现了一个快速学习的方法,每一节我都作总结(内容就是写相关的注意点),之后用到在看响应的总结部分。CSS分组和嵌套选择器分组就是简化了书写嵌套就是在一个大组中,分类处理CSS尺寸这个就是设置元素的大小尺寸等数据,需要注意的是 在盒子模型下 对于元素的大小的设计CSS 显示和可见性可见性设置为none的话,就是不能看到但是还是占用空间的,显示不会占用空间 对于元素显示的问题,首先明确是什么元素,比如说是块元素还是内联元素 是不一样的之后对于块

2021-01-05 15:33:18 187

原创 CSS-1

今天看完了HTML,想着顺便看一下CSS,虽然觉得今天可以看完,但是因为晚上要写毕业论文的缘故,就不做计划了,看到哪里算哪里了为什么要有CSSCSS(Cascading Style Sheets)层叠样式表作用是:如何表示HTML的元素 如何表现CSS的构成选择器(需要改变的HTML元素)和声明(属性{希望设置的样式属性}和值{属性的值})CSS是为HTML提供样式表现的,所以就需要知道哪些地方需要这种样式表现,存在很多处的话就需要抽出来 id和class就是搞这个的区别 id 指定元

2021-01-04 20:23:01 53

原创 HTML-2

今天争取看完HTML的基础:元素包含所有的头部标签脚本,样式文件 meta信息2. 和之间的区别base是HTML文档中的链接标签的默认链接 是内部资源link是HTML文档和外部资源之间的 是外部资源3. 元数据元数据可以使用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他Web服务。更多的是一个标签作用 描述属性4. 样式简单来说就是格式化 有HTML里面的样式(或者更加准确说一下是内联,使用的是css的属性)也有外部的样式(用于很多界面的时候)5. 空标

2021-01-04 15:29:50 126 2

原创 HTML -1

今天开始在菜鸟教程上学习HTML,写一篇博客作为今天的总结。首先,我觉得这个真的没有什么要记录的或者说是所有的都要记录,所以就简单记录一下。(到HTML链接)doctype 声明是不区分大小写的,用来告知 Web 浏览器页面使用了哪种 HTML 版本;中文网页需要使用 声明编码HTML对大小写不敏感,但是为了避免不必要的麻烦,还是使用小写注意关闭空元素关于HTML属性,我认为是用来分辨标识的一个特性 注意(小写,单引号)...

2021-01-02 10:27:28 49

原创 第一次尝试

今天是2021年第一天,给自己立一个flag,从今天起好好写博客记录。首先是学习HTML/CSS/JS,为php学习做准备 计划用时1个月期间复习学习Go语言这就是2月之前的计划安排

2021-01-01 19:22:03 55

空空如也

空空如也

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

TA关注的人

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