- 博客(175)
- 问答 (6)
- 收藏
- 关注
原创 [Go] slice切片详解
Go 中的切片本质上是一个结构体,包含以下三个部分:切片的扩容切片在初始化的时候长度等于容量,当向切片添加元素时切片的长度就会大于容量,此时就会为其分配一个新的底层数组在该示例中,初始化切片的长度为3,容量也为3,切片的底层数组的地址为0xc0000120a8,当向其添加一个元素后,切片的容量为6,并指向了一个新的地址0xc00000c360我们可以使用make()创建一个容量大于长度的切片,这样在向切片添加元素时,长度就不会超过容量,就不会分配新的数组在该示例中,我们使用创建了一个长度为3,容量
2024-11-28 17:56:02 803
原创 租辆酷车小程序开发(一)—— 前端设计
主要介绍自定义组件的使用,暂不在本项目中使用自定义组件采用colorui的模态窗口miniprogram的components目录下新建modal目录,modal目录下新建Component在modal.wxml中编写自定义组件。
2024-11-27 18:53:19 637
原创 租辆酷车小程序开发(二)—— 接入微服务GRPC
proto文件中添加如下定义使用命令生成代码,这里新加了一个plugins=grpc参数在生成的go语言代码中可以使用Go to Symbol in Editor搜索TripService可以看到TripServiceClient是一个接口,其中包括GetTripRequest、GetTripResponse等同样TripServiceServer也是一个接口要实现这两个功能只需要实现这个接口即可定义http rest层面上暴露的接口,在proto目录下新建trip.yaml文件。
2024-11-27 18:53:02 931
原创 [Go] 字符串遍历数据类型问题
字符串在Go中是以字节序列的形式存储的,而 str[i] 直接访问了这个字节序列中的第 i 个字节。如果字符串中的字符是单字节的ASCII字符,那么 s[i] 就足以表示该字符。但是,如果字符是多字节的Unicode字符,那么 s[i] 就只是该字符的第一个字节,而不是整个字符。v是int32(rune)类型,返回的是字符的unicode编码。str[i]是unit8(byte)类型,返回的是单个字节。在使用for i,v:=range str遍历字符串时。
2024-07-09 00:36:24 418
原创 租辆酷车小程序开发(三)—— 微服务与存储设计
'时再生成ts文件会报错,考虑是乱码问题,这里可以直接用生成的js文件生成ts文件,再手动添加import到js文件中;我们将appid定义在启动grpc服务的main.go文件中,这里面的值都是搭环境的一些代码,所有配置的参数我们在后期都会进行配置化通过命令行参数或环境变量的方法让外界进行提供。自定义登录态:用户token,通过token可以查询用户的openid,token可以过期,过期之后需要重新获取code。(这里的ICODE是慕课网的动态验证码,这里拉取的是课程提供的镜像)
2024-04-06 22:28:07 1149
原创 博客搭建(hexo+github)
使用github托管博客,完全免费不需要购买服务器博客框架:hexohexo主题:ICARUS图床:github+PicGo编辑:vscodemore为什么使用hexo框架?因为hexo是静态框架,我们使用github托管博客的页面只能使用静态的框架,不支持像wordpress等需要请求数据库的动态框架,这类框架必须具有自己的服务器。
2024-04-05 16:29:45 1239
原创 二叉搜索树、B-树、B+树
如果二叉查找树是平衡的则查找、插入的时间复杂度为O(logn)。如果二叉查找树完全不平衡则时间复杂度为O(n)。中序遍历二叉搜索树可以获得关键字的递增序列。
2024-03-14 19:09:21 1156
原创 微信小程序运行机制分析
Native就是微信客户端,逻辑层JsCore(js文件)通过setdata把数据送到渲染层Webview(小程序页面,wxml文件),渲染层接收到数据后就会改变对应的元素值。用户在小程序页面进行操作可以触发event,event传给Native再重新路由到逻辑层JsCore。
2023-12-29 14:40:13 508
原创 IDEA运行单个java文件,忽略其他文件错误
使用idea想单独运行一段测试程序,但是直接run的话会报其他程序的错误,使用以下方法可以实现单独运行一段测试程序。
2023-12-26 17:59:34 2144
原创 IDEA使用小技巧
复制一行代码时,可以直接把光标放在该行任意位置,Ctrl+C。复制文件名时,直接在左侧的项目目录选择文件,Ctrl+C。查看复制历史,Ctrl+shift+V,双击即可粘贴内容。纯文本粘贴,不会格式化,Ctrl+alt+shift+V。剪切光标所在行(不需要选中),可以当删除用,Ctrl+X。局部格式化:选中需要格式化的部分,Ctrl+alt+L。Alt+Shift+上/下:当前行向上/下移动一行。普通粘贴,会自动格式化,Ctrl+V。复制多行,先选中多行,Ctrl+D。文件格式化:Ctrl+alt+L。
2023-12-12 12:55:00 766
原创 Goland连接服务器/虚拟机远程编译开发
SSH用于与远程服务器建立连接添加新的ssh连接,Host为ip地址,Username为用户名,认证方式这里选择密码验证全部填完后可以点击Test Connection测试连接是否成功。
2023-10-30 14:36:43 1691
原创 群、循环群、交换群
一个群(Group)是一个代数结构,它包含了一个集合以及一个在这个集合上定义的二元运算,满足以下四个主要性质。:对于群中的任意两个元素 a 和 b,通过群的二元运算,它们的组合 a * b 也必须属于该群。换句话说,运算结果不会使元素离开群。:群中的二元运算是结合的,即对于任意元素 a、b 和 c,(a * b) * c = a * (b * c)。:群中存在一个特定的元素 e,称为单位元素,它满足对于群中的任何元素 a,e * a = a * e = a。:对于群中的每个元素 a,必须存在一个逆元素 a。
2023-10-16 16:33:23 6201
原创 Bitxhub跨链平台
IBTP(Inter Blockchain Transfer Protocol):由平台提出的一种通用的跨链交互的消息传输协议。
2023-10-11 19:00:45 297
原创 区块链跨链技术
近年来,随着区块链技术的不断发展,区块链的应用场景逐渐从最初的加密货币领域扩展到金融、物流、医疗、公共服务等各个领域。随着区块链的应用场景不断增多,区块链的“数据孤岛”问题日益突出,不同场景下的区块链之间相互隔绝,无法实现信息交互,极大地阻碍了区块链技术的进一步发展。为了解决区块链之间的扩展性问题,区块链跨链技术应运而生。
2023-10-11 18:57:05 1344
原创 Shell脚本编写教程【十】——Shell 输入/输出重定向
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)
2023-09-16 15:24:14 264
原创 Shell脚本编写教程【九】——Shell 函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。带有return语句的函数函数返回值在调用该函数后通过来获得。注意:所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。
2023-07-07 10:13:14 207
原创 Shell脚本编写教程【八】——Shell流程控制
shell的流程控制不可为空以下写法是错误的,如果else分支没有语句执行,就不要写这个else。
2023-07-07 10:12:03 288
原创 Shell脚本编写教程【七】——Shell test命令
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
2023-07-07 10:09:47 239
原创 Shell脚本编写教程【六】——Shell echo和printf命令
-10s 指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来(一个汉字占三个字符)。%s %c %d %f 都是格式替代符,%s 输出一个字符串,%d 整型输出,%c 输出一个字符,%f 输出实数,以小数形式输出。printf “%s\n” abc def 截止到此命令输出一个abc后才会输出一个换行。format-string:格式控制字符串。arguments:参数列表。
2023-07-07 10:07:54 347
原创 Shell脚本编写教程【五】——Shell 基本运算符
Shell支持多种运算符,包括:算术运算符、关系运算符、布尔运算符、字符串运算符、文件测试运算符原生bash不支持简单的数学运算,但是可以通过expr命令实现是一款表达式计算工具,使用它能完成表达式的求值操作。
2023-07-07 10:06:07 146
原创 Shell脚本编写教程【三】——Shell 注释
以 # 开头的行就是注释,会被解释器忽略。通过每一行加一个 # 号设置多行注释如果在开发过程中,遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢?每一行加个#符号太费力了,可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果。
2023-07-07 10:00:50 726
原创 Shell脚本编写教程【四】——Shell 传参
在执行Shell脚本时,可以向脚本传递参数,脚本内获取参数的格式为:$n。n代表一个数字,1为执行脚本的第一个参数,2为执行脚本的第二个参数,以此类推…以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名(包含文件路径)
2023-07-07 10:00:01 903
原创 Shell脚本编写教程【一】——Shell 变量
注意:变量名和等号之间不能有空格变量名只能使用英文字母,数字和下划线,首个字符不能以数字开头不能使用bash里的关键字(可用help命令查看保留关键字)除了显式的直接赋值,还可以用语句给变量赋值。
2023-07-07 09:56:38 141
原创 Shell脚本编写教程【二】——Shell 数组
在Shell中,用括号来表示数组,数组元素用空格分隔,定义数组的一般形式为:数组名=(值1 值2 … 值n)或者value1value2value3)也可以单独定义数组的各个分量。
2023-07-07 09:56:33 166
原创 【Python】基础内容
变量没有类型,字符串变量表示变量存储了字符串而不是表示变量就是字符串变量名数据一个变量可以先后存储多种不同类型的数据a = 1 # 这个时候a存储的是整数类型 print(a) a = 'ABC' # 这个时候a存储的是字符串类型 print(a)是否支持下标索引支持:列表、元组、字符串 - 序列类型不支持:集合、字典 - 非序列类型是否支持重复元素:支持:列表、元组、字符串 - 序列类型不支持:集合、字典 - 非序列类型是否可以修改支持:列表、集合、字典。
2023-06-14 15:16:30 1206
原创 【Golang】切片的底层实现(关于slice调用append函数后分配新数组的问题)
切片的底层实现,len,cap,切片的len超过cap之后系统会分配新的数组
2022-12-09 14:04:11 2067 3
原创 【数据结构1】数据结构的基本概念
数据结构中涉及的基本概念:数据、数据元素、数据项、数据结构、数据对象数据结构的三要素:逻辑结构、物理结构、数据的运算数据类型、抽象数据类型
2022-12-04 17:50:31 1452
转载 网络安全笔记8——虚拟专网技术
VPN:(虚拟专网, Virtual Private Network)是指将物理上分布在不同地点的网络通过公用网络连接而构成逻辑上的虚拟子网。
2022-08-12 18:12:40 6580 6
原创 网络安全笔记7——防火墙技术
防火墙技术概述、静态/动态包过滤防火墙、电路级网关、应用级网关、状态检测防火墙、切换代理、空气隙防火墙、分布式防火墙
2022-08-11 17:01:42 6418 2
原创 网络安全笔记5——数字签名
数字签名概念、RSA、ElGamal、Schnorr、DSS、SM2、特殊功能的数字签名、不可否认签名、防失败签名、盲签名、群签名、代理签名、指定证实人签名、一次性签名
2022-08-07 16:33:54 3693 7
空空如也
密码学中的扩散是如何实现的?
2022-07-29
CCF序列查询新解,样例都能过,但提交只有五分
2022-02-28
Go语言在Linux下获取防火墙的信息
2022-01-12
页面大小和页表大小会相等吗
2021-12-30
markdown如何在分数中嵌套的加入上下标
2021-12-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人