高级函数的使用细节
一 函数签名的概念 一个函数签名 (或类型签名,或方法签名) 定义了函数或方法的输入与输出。
简单的说: 函数的签名就是函数的参数列表与返回值列表的统称。使用签名可以鉴别不同函数的特征,此外,也定义了用户与函数直接交互的方法。
特别说明:
1 参数的名称和返回值的名称,不作为函数签名的一部分。换句话说,就是签名与参数的名称无关。
2 只要两个函数参数列表和返回值列表元素的顺序与类型是一致,就可以说明该两个函数是一样的函数或者说实现了同一个类型函数。
例如:
123456789101112 // 自定义函数类型type MyFuncType func(int, int) int// 实现一个和MyFuncType一样类型的函数func TestFunc (a int, b int) int { return a + b}func main() { var c MyFuncType = TestFunc d := c(1, 1) fmt.Println(d ...
解决go mod模式下本地包引用问题
使用go mod模式,进行项目源码管理,可以解决不用在Gopath下的src目录下进行项目开发。
在go mod 下,解决自定义包倒入出错问题:
1main.go:11:2: package hellogRPC/proto/hello is not in GOROOT (/Users/austsxk/Golang_dev/go/src/hellogRPC/proto/hello)
解决的方法:
在每个包下,都使用go mod进行管理,对于需要在项目本地导入的包,可以在当前包的go mod文件中:
自定义导入包的路径,如上图所示,将在server包中使用到的hellogRPC/proto/hello包就命名为此,并在require中填入相关内容,初始化版本为v0.0.0,然后使用 replace 关键词 将其取代为相对于当前文件的包的相对路径。
在server包中就可以正常导入 hellogRPC/proto/hello包
如下图所示:
计算机系统知识(一)
计算机系统基础知识
计算机系统硬件的基本组成计算机硬件由运算器、控制器、存储器、输入设备、输出设备组成;
运算器、控制器和存储器合起来为CPU;
输入设备与输出设备为外设;
存储器为记忆设备,分为外部存储器和内部存储器。
中央处理单元 负责获取程序的指令、并对指令进行编码、执行指令。
CPU功能
程序控制。CPU通过控制指令的执行来控制程序的执行顺序;
操作控制。CPU产生每条操作指令的操作信号,并将操作信号送往对应的部件,控制对应的部件按指令的功能进行操作;
时间控制。CPU对各种操作的时间进行控制,指令执行过程中操作信号的产生、持续时间、已经出现的时间顺序进行严格的控制。
数据处理。CPU对数据进行数据运算和逻辑运算,对数据加工处理,以便于处理结果被使用。
CPU组成
CPU主要是由运算器、控制器、寄存器组、内部总线等组成;
运算器
运算器由算数逻辑单元、累加寄存器、数据缓冲寄存器、状态条件寄存器组成。进行数据加工处理,用于计算机的算数计算和逻辑计算。
主要功能有两点:
执行所有的算数运算。进行加 ...
Mac Application快捷键神器
引言
app应用越来越多,要提升软件的使用效率,快捷键自然是占据重要位置,那么,每个应用的快捷键如此之多,如果去记忆每一个应用的快捷键,那将是一个繁琐枯燥的工作,并且常用的也就那么几个,不常用的偶尔使用,又去查询快捷键又比较费时,那么该如何解决这样的问题呢?
快捷键之神 - CheatSheet
告别快捷键的记忆与查询,按住command5秒,快捷键一览无余。
哪里下载?下载地址如下:
1https://www.mediaatelier.com/CheatSheet/
权限问题解决?
下载完成后,双击解压zip包,并将应用移动到 应用程序目录下。
双击应用,如果弹出非认证打不开,则在 系统偏好设置—>安全性与隐私—>通用 中允许打开CheatSheet;
允许App控制电脑权限打开;还是在安全性与隐私中,点击 辅助功能,将CheatSheet应用对勾打开即可。
软件怎么使用? 在权限配置完成之后,随便点击一个应用,然后按住 command键5秒左右,就会弹出这个应用相关的快捷键操作手册。
操 ...
leetcode-15 三数之和
题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。
注意:答案中不可以包含重复的三元组。
示例:
给定数组 nums = [-1, 0, 1, 2, -1, -4],
满足要求的三元组集合为:
1234[ [-1, 0, 1], [-1, -1, 2]]
解题说明
将数组进行排序,从左向右依次从小到大进行排序;
判断数组长度是否满足输入,如果长度小于等于2,则返回空数组;
定位找值,先固定一个数值,然后定义两个指针,进行左右移动进行目标值确定。如果三个数和等于0,则将三个数加入到结果数组中,在进行判重,如果左指针的值等于左指针加一的值,即相邻数相等,则左指针继续加一,判重条件为左指针小于右指针,退出循环。退出循环后,左右指针各加一,继续从中间向两边查找。如果计算结果大于0,则右指针左移,否则左指针右移。
代码实例
1234567891011121314151617181920212223242526272829 ...
picGo配合github图床、七牛云图床的使用
picGo安装 下载链接: https://github.com/Molunerfinn/PicGo/releases
picGo配置Github图床
登陆Github账号,创建仓库;
Token的生成 进入个人中心,依次点击,settings—> developer setting —> personal aceess tokens 。点击generate token;然后写一个描述,全部都点中;最后生成token。
picGo中Github图床的设置
图片上传使用即可。
picGo配置七牛云图床【已经申请好七牛云存储空间/免费10G】
下载对应版本的picGo应用
1下载链接: https://github.com/Molunerfinn/PicGo/releases
AccessKey和SecretKey:可以在七牛云控制台,秘钥管理页面找到你的配置。登陆七牛云->个人中心->密钥管理
存储空间名:填写前面创建的空间名称
访问地址:对应自己设 ...
leetcode-8 字符串转换整数(atoi)
题目描述字符串转换整数 (atoi)
请你来实现一个 atoi 函数,使其能将字符串转换成整数。
首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:
如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。
假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。
该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。
注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换,即无法进行有效转换。
在任何情况下,若函数不能进行有效的转换时,请返回 0 。
提示:
本题中的空白字符只包括空格字符 ' ' 。
假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过这个范围,请返回 INT_MAX (231 − 1) 或 INT_MIN (−231) 。
...
leetcode-7 字符串Z字(V字)输出
题目描述Z字变换
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。
比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:
123L C I RE T O E S I I GE D H N
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。
示例 1:
12输入: s = "LEETCODEISHIRING", numRows = 3输出: "LCIRETOESIIGEDHN"
示例 2:
输入: s = “LEETCODEISHIRING”, numRows = 4输出: “LDREOEIIECIHNTSG”解释:
1234L D RE O E I IE C I H NT S G
说明Z字转化其实就是交替输出字符,如下图所示:
解答
Python
1234567891011121314151617181920212223 ...
leetcode-3 最长子字符串
题目描述
给定一个字符串,请你找出其中不含有重复字符的 最长子串的长度及其开始位置和结束为止。
示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
解答
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108package main/*@Time : 2020/8/26 18:29@Author : austsxk@Email : austsxk@163.com@File : lengthOfLongestSubString.go@Software: GoLand*/import ("fmt")// 位图法 ...
python使用位图对数据进行排序
位图简介
BitMap是很常用的数据结构,可以用来无重复整数的排序等,通常位图需要借助列表进行实现,列表中的每一个数字,都是有一系列二进制的整数的集合。在python中,整数默认为有符合类型,因此,一个整数4个字节,最大能有31位存储数据,1位存储符号位。
位图实现
获取分组索引、修改bit位值(位运算)
array_index = num // 31 + 1
修改的值的bit位置
bit_index = num % 31
代码实现
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465# -*- coding:utf-8 -*-# @Time : 2020-08-26 12:47# @Author : 宋晓奎# @Email : austsxk@vip.qq.com# @File ...