部署第一个合约
钱包转账 部署第一个合约创建一个 counter.sol 文件,写入 Solidity 代码,如下: 1234567891011121314151617//SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract Counter { uint256 internal count = 0; constructor() {} function get() public view returns (uint256) { return count; } function add(uint256 x) public { count += x; }} 选择合适的编译器版本进行编译。 在部署页面选择 Injected Provider - MetaMask ,这将使用MetaMask作为Web3 Provider...
v-deep的使用踩坑
问题在同一个页面中,我使用v-deep设置了input 组件的placeholder 样式,让输入框从右往左输入,但是这导致textarea 组件的placeholder 样式也被修改了。当我单独设置textarea 的placeholder 样式时,input 中的样式也会相应被覆盖。 这是自定义的placeholder 的样式: 12345678910::v-deep(.placeholder-text) { font-family: PingFangSC, PingFang SC; font-weight: 400; font-size: 14px; color: #2C5181; line-height: 0; text-align: right; font-style: normal; text-transform: none; } 解决办法将需要修改样式的输入框再包一层就好了。修改后的样式如下: 123456789101112.right-input...
表单默认提交行为导致请求被取消
表单默认提交行为导致请求被取消起因是最近接手的一个前端管理系统项目,这是个19年的老项目,技术栈就不必多说了,jquery+layui ,我看了直接傻眼,我曼波是个后端开发啊😭😭😭!!!终究是活成了自己最讨厌的样子。话又说回来,成为一名全栈er感觉也挺爽的,只是我不想接触这么一坨大杂烩的时代遗物。 问题打开模态框填写表单数据,然后点击按钮提交表单发起请求时发现预检OPTION 请求通过了,但是真正的请求却被取消了,随后整个页面自动刷新了,模态框也被关闭但没有触发任何回调函数弹出提示框。这个问题其实很基础,但我作为一名半路出家的前端,对这种场景没什么经验。 12345678910111213141516171819202122232425// 监听提交按钮点击事件$('#submitAfterSale').on('click', function() { var formElement = $('#addAfterSaleForm')[0]; if (formElement) { ...
结构体指针的转换
问题:起因是在水群的时候看到这么个问题: 12345678910111213141516171819202122232425262728293031package mainimport ( "fmt" "unsafe")type Reception struct { p unsafe.Pointer len int}func main() { type A struct { s string } m := make(map[string]struct{}) tmp := A{s: "hello"} m[tmp.s] = struct{}{} // 由于 A 结构体的字段 s 是一个字符串类型,所以在将 tmp.s 作为 map 的 key 时,会将字符串的地址作为 key,而不是字符串的值 fmt.Printf("tmp.s: %+v\n",...
for range的闭包问题
for range的闭包问题在之前,Go中的for range语句中用短声明形式定义的循环变量是整个循环共享同一个,这就导致在for range语句中的闭包在循环结束后引用的该循环变量最后都会变为同一个值。 1234567891011func main() { var wg sync.WaitGroup for i := 0; i < 3; i++ { wg.Add(1) go func() { defer wg.Done() fmt.Println(i) }() } wg.Wait()} 例如在上面的代码中,最后输出的结果为: 123333 这是因为闭包实际上捕获的是对变量 i 的引用,在闭包函数运行时,循环语句已经结束,i 的值已经变为了3,所以输出的结果自然都是3。 如果要实现预期输出,则需要使每个闭包函数的引用各不相同,修改如下: 123456789101112func main() { var wg sync.WaitGroup for i := 0; i < 3;...
Golang使用Protocol Buffers不完全指北
Protocol Buffers V3 语法指南Protocol Buffers V3中文语法指南[翻译] - 李文周的博客 使用指南安装protobuf从gtihub仓库下载对应操作系统的预编译好的二进制文件。 我下载的是M芯片的Mac系统版本: 其中: bin 目录下的 protoc 是可执行文件。 include 目录下的是 google 定义的.proto文件。 别忘了将文件夹下的 bin 目录添加到环境变量中。 protoc生成Go和gRPC代码protocol buffer编译器需要一个插件来根据提供的proto文件生成 Go 代码,使用下面的命令安装插件。 1go install google.golang.org/protobuf/cmd/protoc-gen-go@latest 同样,生成gRPC代码也需要用到一个插件。 1go install...
使用 Cloudflare 加速 Github Pages
为域名添加解析如果域名是在其他服务商(比如腾讯云,阿里云)购买的,需要先在Cloudflare添加域名。 然后在域名服务商的控制台将Cloudflare提供的 nameserver 服务器配置到域名上。等待一些时间,在域名传播完成后,就可以使用Cloudflare的域名托管服务了。 接下来查看自己git page的源ip地址,并为域名创建一条 A记录。 在git page仓库添加CNAME文件最后需要在git page的仓库根目录下添加 CNAME 文件,在文件中输入刚刚配置的域名,例如我配置的域名为 blog.hoshinobunny.xyz ,那么只需要将这一行域名写入 CNAME 文件中即可生效。
微服务架构介绍
SOA架构SOA(Service-Oriented Architecture,面向服务的架构)是一种高层级的 架构设计理念,可通过在网络上使用基于通用通信语言的服务接口,让软件组件可重复使用。它使用称为服务的软件组件来创建业务应用程序。每项服务提供一种业务能力,并且服务也可以跨平台和语言相互通信。开发人员使用 SOA 来重用不同系统中的服务,或者组合几个独立的服务来执行复杂的任务。 ESB(Enterprise Service Bus,企业服务总线)把企业中各个不同的服务连接在一起。就像计算机总线一样,把计算机的各个不同的设备连接在一起。 因为不同的服务是使用不同的技术实现的,各个独立的服务是异构的,如果没有统一的标准,则各个异构系统对外提供的接口是各式各样的。SOA 使用 ESB 来屏蔽异构系统对外提供各种不同的接口方式,以此来达到服务间高效的互联互通。ESB通过使用标准网络协议(如 SOAP、XML、JSON、MQ )来开放服务以发送请求或访问数据,实现与各种系统间的协议转换、数据转换、透明的动态路由等功能,消除了开发人员必须从头开始进行集成的困扰。 采用 SOA...
星露谷(v1.6)mod安装教程
[!NOTE] 前情提要:因为今天邢老板心血来潮说想玩星露谷,于是我就整理了一点常用的mod来加强邢老板的新手体验😉 mod安装教程 [!NOTE] mod下载网址:https://www.nexusmods.com/stardewvalley/mods/ 必须要先安装mod加载器SMAPI,解压SMAPI-4.1.7-installer.zip后根据操作系统运行相应的脚本即可。 一个压缩包是一个mod,解压后将文件夹拖入星露谷物语游戏安装路径下的mod文件夹即可。 有些mod需要安装必要的前置mod。 推荐mod列表 Generic Mod Config Menu 通用Mod配置级菜单 5098 AutomaticGates 自动栅栏 3109 ChestsAnywhere 远程宝箱仓库 518 EideeEasyFishing 秒钓鱼 4806/20391 LookupAnything 查看所有信息 541 PassableCrops 穿透作物 15223 UIInfoSuite2 显示当日信息...
Arc浏览器快捷键
Arc 的标签页1️⃣ 标签页是浏览的重要组成部分,它允许你同时打开多个网页。不过,与传统浏览器不同的是,Arc 采用了垂直排列标签页的方式,这可以说使打开大量标签页比采用水平布局时更易于管理。下面列出了在 Arc 中管理标签页最有用的快捷方式,以充分利用 Arc 独特的标签页管理功能,包括归档、固定和清除标签页。 Command + T 新建标签页 Command+ W 关闭标签页 Command + Shift + T 重新打开关闭的标签页 Command + { 上一个标签页 Command + Option + ↑ 前一个标签页(备选) Command + Option + ↓ 下一个标签页 Command + } 下一个标签页(备选) Command + Shift + K 清除未固定的标签页 Command + D 固定/取消固定标签页 Arc的空间(Space)功能2️⃣ 空间是 Arc...