- 博客(15)
- 收藏
- 关注
原创 MacOS下为golang配置Protobuf
首先去github下载protobuf如果电脑没有配置gcc,那么需要撞上gcchttps://github.com/protocolbuffers/protobuf按照描述执行编译文件进行编译./configuremake make check make install每步在执行过程中注意权限问题,有的命令不sudo执行会出问题。执行完成后,执行protoc --version,如果输出版本,那么就代表安装成功。除了protoc,我们还需要protoc-gen-go
2021-06-27 14:25:24
394
原创 Linux常用指令
获取文本行数: awk '{print NR}' test1.txt | tail -n1批量杀死某个进程 :ps -ef | grep target_process | grep -v grep | awk '{print $2}' | xargs kill -9
2021-04-21 18:32:53
116
原创 golang结构体与方法
type People interface { Speak(string) string}type Student struct{}func (stu *Student) Speak(think string) (talk string) { if think == "speak" { talk = "speak" } else { talk = "hi" } return}func main() { var p
2021-02-07 11:41:50
376
原创 Go语言defer与函数返回值的陷阱
func test() (ret int){ ret = 10 return 1}函数的返回值是1func test01() (ret int){ defer func(){ ret = 10 }() return 1}函数的返回值是10func test02() (ret int){ defer func(){ ret += 10 }() return 1}函数的返回值是11func test03() (ret int){ ret = 10 defer
2020-11-22 12:14:01
811
原创 Go语言桥连接
func structBridge(v interface{},funcName string,args...interface{}){ rVal := v.(reflect.Value) vFunc := rVal.MethodByName(funcName) input := make([]reflect.Value, len(args)) for i, _ := range args { input[i] = reflect.ValueOf(args[i
2020-11-18 16:44:54
184
原创 GoLang中方法与结构体暧昧不清的地方
package mainimport( "fmt" "reflect")type Student struct { Name string Age int}func (this *Student)SetName(theName string) { (*this).Name = theName}// func (this Student)SetName(theName string) {// this.Name = theName// }func main() .
2020-10-11 12:17:49
175
原创 SQL练习:查找重复的电子邮箱
编写一个 SQL 查询,查找Person 表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |+----+---------+根据以上输入,你的查询应返回以下结果:+---------+| Email |+---------+| a@b.com |+---------+说明:所有电子邮箱都是小写字母...
2020-05-17 18:33:13
465
原创 SQL练习:组合两个表
组合两个表表1: Person+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+PersonId 是上表主键表2: Address+-------------+---------+| ...
2020-05-17 17:12:46
564
原创 补码加法以及常见的算数溢出
所有的值在计算机中都是二进制识别的,1字节等于4位,n位可以理解为乘以(n-1)次2,同样位数下的值,无符号比有符号的最大绝对值多一位(有符号整型会使用最左边的一位记录正负号)。无符号整型数在进行加法运算时要注意溢出,判定无符号整型是否溢出的函数:int uadd_ok(unsigned x, unsigned y){ return x + y < x;}无符号整型:x&...
2019-10-27 17:17:38
2642
原创 Redis:简单动态字符串
在C语言中,一个结构体中最后一个成员的地址减去第一个成员的地址,就是该结构体的大小例如:struct sdshdr { int len; int free; char buf[];};buf的地址减去len的地址,正好等于sizeof(sdshdr);在C++中 char * str = "nihao"是不被允许的,但是C语言中可以,并且可以直接打印str 输出nihao...
2019-03-11 23:31:21
171
原创 最近遇到的一些坑
C++ 逻辑判断的顺序是从左向右的。conditionA&&conditionB 与 conditionB&&conditionA并不一定等价。举个例子:void InsertSort(vector<int> &arr, int length){ for (size_t i = 1; i < length; i++) { ...
2018-12-16 15:58:44
161
原创 C++创建不确定形参数量函数的方法
一直有思考C++是否可以创捷形参数目不确定的函数,结果看C++primer的时候发现还真有。initializer_list形参如果函数的实参数量未知但是全部实参的类型都相同,我们可以使用initializer_list类型的实参。话不多说先上示例:int sum(std::initializer_list<int> theList) { int resul...
2018-11-11 22:18:22
1083
原创 LeetCode:无重复字符的最长子串
我自己的解法思路很简单:使用一个vector容器存储每个不重复的字符串,并且依据它们的长度进行排序,比较关键的一点就是实现迭代器的“回滚”,比如"dvdf"字串中,在保留"dv"之后,如何使迭代器回滚到‘v'上。规律是迭代器减去每个存入的字符串长度减一,就是需要回滚的位置。 我的代码如下: if (s.size() == 0) { return 0; } if (s.s...
2018-10-22 09:26:31
143
原创 LeetCode:除自身以外数组的乘积
拿到这道题的时候,下意识的觉得很简单,但是自己动手去做的时候发现并没有我想象中简单,首先题目规定了不能使用除法运算,否则迭代相乘然后除以每个位置上的数就会很简单,且限定了时间复杂度为O(n),所以无法使用双重for循环。于是找到一位博客园的博主的解法来学习,代码如下:vector<int> Solution::productExceptSelf(vector<int&g...
2018-10-14 15:27:00
250
原创 leetcode:反转链表
struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};ListNode * reverseList(ListNode * head){ //ListNode * dummy = new ListNode(0); //ListNode * ptr = head; /...
2018-10-14 14:12:54
153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人