不会飞的章鱼

熟能生巧,勤能补拙;念念不忘,必有回响。

起因

因为我本机系统上的Go版本是10.4的,不支持Go Module,想升级到最新的go12.7

操作步骤

1,先下载最新的源码文件

https://golang.org/dl/下载自己需要的源码文件,我需要的是go1.12.7.linux-amd64.tar.gz

阅读全文 »

为什么要用它

控制包的依赖,例如一个项目引用的是A包1.0版本后编译成功,结果几个月后A包tag号升到了2.3,而我们平时用go get命令是直接从master分支下引入的,因此可能会造成引入了同样的包,但编译不通过的问题。
而如果这个项目中存在vendor文件夹,go项目编译时就会优先编译vendor文件夹里的包。

问题还原

今天编译一个用Go写的语音识别服务的项目,缺失的A包用go get命令获取了,但编译后显示xxx function not defined,而我查了这个xxx函数是A包声明好的,这是什么原因呢。
原因就在于版本不匹配

解决

阅读全文 »

初衷

女友工作了,于是开始商议在家自己做饭,顺便把第二天中午的也做好,带到公司去吃。
本文记录这段时间做饭炒菜的收获。
炒菜心得

炒菜前需要把菜洗干净,然后把菜和肉切薄。
接着进入炒菜步骤:

首先,热锅冷油:先把锅烧热,再倒入冷油。
如果是肉,先倒肉,接着赶紧翻炒,防止粘锅。
肉翻的差不多后,倒入切好的蒜,可以入味和杀菌。
倒入料酒,去腥味。
倒入老抽酱油(凉菜用生抽)。
其次倒入不容易煮熟的菜,例如青椒,进行翻炒。
再倒入容易熟的菜进行翻炒。
洒盐。
快熟的时候关火,洒鸡精,然后用余温翻炒。

注意

阅读全文 »

起因

因为工作相关,所以写篇文章记录下这整体的业务流程。

收录

文字简述

收录,简单来说就是将视频流保存成视频文件,比如后缀名为mp4,flv,ts等。那么需要哪些模块呢

阅读全文 »

题目链接

merge-sorted-array

解题思路

Golang

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
func merge(nums1 []int, m int, nums2 []int, n int)  {
nums := make([]int,n+m) //创建一个混合数组,长度是nums1和nums2的和
//三个变量i,j,k,分别指向nums1,nums2,和混合数组的末尾
for i,j,k := 0,0,0;i < m || j < n;k++ {
if i < m && j < n {
if nums1[i] < nums2[j] {
nums[k] = nums1[i]
i++
} else {
nums[k] = nums2[j]
j++
}
} else if i < m {
nums[k] = nums1[i]
i++
} else {
nums[k] = nums2[j]
j++
}
}
copy(nums1,nums) //把nums的数拷贝到nums1里
}

阅读全文 »

起因

周五在做go test测试时,碰到个问题,我要对一个xxx函数写测试样例,然而它的首字母是小写的,没有导出,单元测试过不去,而这个xxx函数外面还有一个YYY函数首字母是大写的,但要经过很长的逻辑才能到xxx函数。这时我又要完成对xxx函数进行测试,又不想经过YYY函数走逻辑,该怎么办呢?

实现过程

首先,绝对不能做的事:

  • xxx函数改为首字母大写的Xxx函数
    原因:很多地方都在调这个函数,你改了这一处只满足你这次的测试,那其他基本业务流程也就崩了。
阅读全文 »

起因

周五在做go test测试时,碰到个问题,我要对一个xxx函数写测试样例,然而它的首字母是小写的,没有导出,单元测试过不去,而这个xxx函数外面还有一个YYY函数首字母是大写的,但要经过很长的逻辑才能到xxx函数。这时我又要完成对xxx函数进行测试,又不想经过YYY函数走逻辑,该怎么办呢?

实现过程

首先,绝对不能做的事:

  • xxx函数改为首字母大写的Xxx函数
    原因:很多地方都在调这个函数,你改了这一处只满足你这次的测试,那其他基本业务流程也就崩了。
阅读全文 »

起因

本地代码推送到远程仓库地址时,有时地址会发生变更,所以需要更改,git命令如下

命令

查看远程仓库地址

git remote -v

阅读全文 »