- 博客(14)
- 问答 (1)
- 收藏
- 关注
原创 Golang爬虫-gRPC
@ Golang爬虫-gRPCgRPCRPC(Remote Procedure Call)— 远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。安装Protobuf安装protoc编译器 — 下载链接# protobuf-all-3.17.1.tar.gz# 解压
2021-06-04 10:22:29 318
原创 Golang爬虫-HeadlessChrome
Headless Chrome安装与使用Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序。相比于现代浏览器,Headless Chrome 更加方便测试 web 应用,获得网站的截图,做爬虫抓取信息等。安装对于RobotBug而言Headless Chrome以一个公共资源,可以被其他服务所使用。docker install chromedp/headless-shelldocker run -d -p
2021-05-31 20:52:50 1995
原创 Golang设计模式之单例模式
@Golang设计模式之单例模式package main/*单例模式属于创建型模式,他提供了一种创建对象的最佳方式。单例模式创建唯一一个类对象,并提供访问方式*/type Singleton struct{ // todo}var singleton *Singleton/*init()用于包的初始化在main()函数之前自动执行无法被其他函数调用*/func init(){ singleton = &Singleton{}}func GetInstan
2021-03-23 19:33:22 264
原创 @Golang数据结构和算法之排序
@Golang数据结构和算法之排序package mainimport "fmt"/*冒泡排序bubbleSort(A[N]) flage = 1 while flage flage = 0 for j=N-1 to 1 if A[j] < A[j-1] change(A[j],A[j-1]) flage = 1*/func bubbleSort(A []int){ flag := true for flag { flag = false
2021-03-20 19:44:24 195
原创 Golang亿点小细节之slice
@Golang亿点小细节之切片你所忽略的,往往才是Bug的起源谨言不会slice,请不要尝试用go写算法!简单聊聊sliceslice是一个长度可变的数组go提供给slice的主要方法包括有切片[:],重组[:len()+n],复制copy(),追加append()slice的三个部分:指向相关数组的指针ptr、当前数组长度len、相关数组最大容量cap在开始下面的内容前,请把这个图记在脑子里!首先我们先来聊聊切片操作x:=[]int{2,3,5,7,11}y:=x[1:3] /
2021-03-19 20:10:10 1316 1
原创 Golang亿点小细节之close()
@Golang亿点小细节之close()你所忽略的,往往才是Bug的起源close() 前置知识1.不能去close()一个已经close()的channlepackage mainfunc main(){ ch := make(chan int) close(ch) close(ch) // output: // panic: close of closed channel}2.channle被close()后,不可以写入(注意会panic:send on closed cha
2021-03-19 11:39:16 2800 8
原创 Golang亿点小细节之(var := new make)
@Golang亿点小细节之(var := new make)你所忽略的,往往才是Bug的起源var和:=package mainimport "fmt"var a int/* var可以在任何地方定义变量,:=只能在函数内使用a:=1expected declaration*/func main() { var b int // var初始化,赋值零值,零值不一定是0哦! c := 1 fmt.Println("c addr=",&c) /* 左侧没有新变量
2021-03-18 19:44:59 580 1
原创 Golang有意义的问题-并发下的有序输出
@Golang有意义的问题和尚搬家从前,有三个和尚,需要搬家,唯一的要求是要保证搬家前后房内物品布局一致,然后我编不下去了…问如何使用3个goroutine是由1-100的有序输出?分析问题的核心在于如何保证在并发条件下的有序输出。主动控制式package mainimport ( "fmt" "sync" "time")func main() { q := make(chan int) wg := new(sync.WaitGroup) wg.Add(1) go f
2021-03-17 10:23:26 695 3
原创 Golang汇编之defer的执行
@ Golang汇编之defer的执行简单的现象defer 语句会将其后面跟随的语句进行延迟处理,在 defer 归属的函数即将返回时,将延迟处理的语句按 defer 的逆序进行执行,也就是说,先被 defer 的语句最后被执行,最后被 defer 的语句,最先被执行。test.gopackage mainimport ( "fmt")func main() { defer func() { fmt.Print(1) }() defer func() { fmt.Print
2021-03-16 21:27:17 1365 7
原创 Golang汇编之快速入门
@Golang汇编快速入门plan9基本指令常数常数在 plan9 汇编用 $num 表示,可以为负数,默认情况下为十进制。可以用 $0x123 的形式来表示十六进制数。栈调整intel 或 AT&T 汇编提供了 push 和 pop 指令族,plan9 中没有 push 和 pop,栈的调整是通过对硬件 SP 寄存器进行运算来实现的,例如:SUBQ $20, SP // 对 SP 做减法,为函数分配函数栈帧ADDQ $20, SP // 对 SP 做加法,清除函数栈帧数据搬运搬
2021-03-16 17:43:47 2346 3
原创 UML类图
车的类图结构为,表示车是一个抽象类;它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心三角箭头的虚线表示;小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心三角箭头的实线表示;小汽车与发动机之间是组合关系,使用带实心菱形箭头的实线表示;学生与班级之间是聚合关系,使用带空心菱形箭头的实线表示;学生与身份证之间为关联关系,使用一根实线表示;学生上学需要用到自行车,与自行车是一种依赖关系,使用带箭头的虚线表示;类和关系泛化关系在代码中泛化关系表现为继承非抽.
2020-05-15 11:49:31 350
原创 JS基础速览
1.js组成2.js输入输出语句alert(msg) ; 弹出警示框console.log(msg); 控制台打印信息prompt(info) ; 弹出输入框3.js变量var variable; 声明variable变量ps: js变量的类型是在赋值后才会确定,运行时确定类型,是动态语言数据类型:简单数据类型: Number(0) Boolean(false) String("") Undefined(undef
2020-05-15 11:49:16 156
原创 VSCode Docker linux环境开发 for Windows 10
本文利用vscode Remote-Containers插件与Docker在windos平台实现linux环境开发Docker1.下载 Docker DesktopDocker Desktop for Windows2.安装Docker Desktop3.设置Docker Desktop1.右键单击小鲸鱼,选择settings2.修改Disk image location修改镜像...
2020-03-13 14:00:34 2192
空空如也
C语言写入数据到二进制文件失败
2018-11-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人