go
coordinate_blog
这个作者很懒,什么都没留下…
展开
-
Go语言基本语法
0x01 内建变量类型bool、string(u)int、(u)int8、(u)int16、(u)int32、(u)int64、uintptrbyte、runefloat32、float64、complex64、complex128uintptr是指针类型,rune是字符类型(4字节,也就是解决了其他语言char的编码问题),complex复数类型(很神奇,其他语言没...原创 2019-06-20 09:35:31 · 625 阅读 · 0 评论 -
Go语言分布式网络爬虫(3)
继续上次没有处理完的问题,也就是字体的处理。我大概知道一些处理思路(通过go的freetype这个包,不过需要改写一些代码),由于本人现在水平有限(毕竟才学一个星期的golang,QAQ),而且font的这个编码规范也没搞懂,所以暂时放一放,现将功能实现再说。所以我通过查看一些博客,找到了一个折中的处理办法,就是通过go调用python的fonttools包。O(∩_∩)O哈!感觉贼蠢,但是没有办...原创 2019-06-28 15:10:14 · 321 阅读 · 0 评论 -
Go语言分布式网络爬虫(2)
好的,我们现在又回到了开始,我们之前只是获取了不同城市的信息,而我们的目的是获取租房信息 所以不难想到,我们需要编写一个功能类似于citylist.go的文件。我们首先查看租房金额,这个时候就有一个问题了,我们发现租金通过58同城的字体转化过的,所以我们先要获取字体信息。 我们新建一个font包,用于获取字体信息 const fontName = "onl...原创 2019-06-27 19:08:47 · 571 阅读 · 0 评论 -
Leetcode 1095:山脉数组中查找目标值(超详细的解法!!!)
给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。如果不存在这样的下标 index,就请返回 -1。所谓山脉数组,即数组 A 假如是一个山脉数组的话,需要满足如下条件:首先,A.length >= 3其次,在 0 < i < A.length - 1 条件下,存在 ...原创 2019-09-30 22:15:59 · 1676 阅读 · 5 评论 -
Go语言分布式网络爬虫(0)
学习了一段时间的golang了,我们准备通过golang完成一个爬虫任务,目标是对58同城租房信息爬取。首先安装gopmgo get -v -u github.com/gpmgo/gopm接着我们分析一下58同城的网页,我们首先可以在https://www.58.com/changecity.html链接中查看不同城市 我们任意选定一个城市,比如说合肥,会出现如下信息 ...原创 2019-06-24 19:13:20 · 776 阅读 · 0 评论 -
Leetcode 253:Meeting Rooms II(超详细的解法!!!)
Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si < ei), find the minimum number of conference rooms required.For example,Given [[0, 30],[5, 10]...原创 2019-06-24 08:43:01 · 5259 阅读 · 0 评论 -
Go语言并发编程基础
0x01 goroutinego是在语言层面上支持并发编程,使用方法非常简单,通过go关键字后面加入函数即可。func main() { for i := 0; i < 1000; i++ { go func(i int) { fmt.Printf("hello goroutine %d\n", i) }(i) } time.Sleep(time.Microsecon...原创 2019-06-23 10:25:19 · 170 阅读 · 0 评论 -
Go语言函数式编程
0x01 函数式编程函数是一等公民:参数,变量,返回值都是函数高级函数函数(闭包)更加严格的定义不可变性:不能有状态,只有常量和函数函数只能有一个参数0x02 闭包函数体中包含自有变量和局部变量func adder() func(int) int { sum := 0 return func(v int) int { sum += v return sum ...原创 2019-06-21 18:33:06 · 580 阅读 · 0 评论 -
Go语言分布式网络爬虫(1)
我们的爬虫主体框架思路如下获取request,将request发送给engine处理engine将url发送给Fetcher,Fetcher获取网页信息Fetcher获取网页信息后,发回engineengine将网页信息发送给Parser处理这一小节的主要内容是对我们之前编写的代码进行一些简单的封装,并且编写部分engine和parser的代码。下面的总体的结构图 我们...原创 2019-06-25 09:07:32 · 407 阅读 · 0 评论 -
Go语言面向接口
0x01 duck typingpython中的鸭子类型def duck_run(duck): duck.run()与python类似,go语言中也有鸭子类型。0x02 接口在go语言中接口的类型是interfacetype Retriever interface { Get(url string) string}接着我们穿件包retriever,然后在包中实现...原创 2019-06-21 10:08:14 · 418 阅读 · 0 评论 -
Go语言面向对象
0x01 结构体go语言仅支持封装,不支持继承和多态(这和c语言非常类似)go语言创建结构体,我们通过type关键字定义类型。type ListNode struct { Val int Next *ListNode}关于结构体的赋初值var root ListNoderoot = ListNode{Val: 3}root.Next = &ListNode...原创 2019-06-20 17:26:48 · 216 阅读 · 0 评论 -
Go语言内建容器
0x01 数组数组的声明var variable_name [SIZE] variable_type我们当然可以讲var省略,因为我们之前在变量声明的时候就是这么干的。但是这么做的话,我们就必须给它赋初值arr := [3]int{1, 2, 3}类似于c/c++中,我们也可以不写出具体的数组大小,但是需要通过...指明。arr := [...]int{1, 2, 3}关于多维...原创 2019-06-20 14:36:01 · 407 阅读 · 0 评论 -
Leetcode 1042:不邻接植花(超详细的解法!!!)
有N个花园,按从1到N标记。在每个花园中,你打算种下四种花之一。paths[i] = [x, y]描述了花园x到花园y的双向路径。另外,没有花园有 3 条以上的路径可以进入或者离开。你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。以数组形式返回选择的方案作为答案answer,其中answer[i]为在第(i+1)个花园中种植的花的种类。花的种类用 1, 2...原创 2019-06-29 15:22:37 · 1494 阅读 · 0 评论