Saki's 研究记录

Golang 后端如何入门 JS 语言
前言类比法是一种学习方法,它是通过将新知识与已知知识进行比较,从而加深对新知识的理解。在学习 JS 语言的过程中,我发现,通过类比已有的前端知识,可以更好地理解 JS 语言的特性。 语法对比 import 包方式JS 语言的包导入方式与后端的模块导入方式类似,都是通过 import 关键字导入,但是 Go 语言的导入方式更加简洁,只需要写包名即可,不需要写路径。 123456789// goimport ( "a" "b")// jsimport a from "a";import b from "b&qu...
使用结构或函数选项简化go函数签名【译】
文章内容来自func25的 twitter 在Go中设计函数时,我们可能会遇到需要传递大量参数的情况。 123func ConnectToService(host, username, password string, port int, ssl bool) { // Connection logic ...} 这可能会影响函数的目的,并使维护代码成为一件苦差事,特别是当涉及相同类型的参数时。 为了保持整洁,请考虑两种策略: 选项结构 函数选项 选项结构体将参数捆绑到一个结构中,这不仅增强了可读性,还简化了参数传递。 什么时候使用它? 你的...
go run 报错 undefined
问题在 github 上 clone 下来了个项目,结构组织很简单就两个文件,类似 main.go 和 a.go。main 函数在 main.go 中, 并且在 main 函数中调用了 a.go 中的函数。 执行 go run main.go 时报错: 1234> go run main.go# command-line-arguments./main.go:15:9: undefined: funcA... 但执行 go build 却不会报错,且生成可执行文件功能正常。 原因报错原因是 go run 会先进行编译操作, 但在编译时只会以 main.go 为准, 导致引用其他文件...
10个令人惊叹的Go语言技巧,让你的代码更加优雅
简介在开发生产项目的过程中,我注意到经常会发现自己在重复编写代码,使用某些技巧时没有意识到,直到后来回顾工作时才意识到。为了解决这个问题,我开发了一种解决方案,对我来说非常有帮助,我觉得对其他人也可能有用。以下是一些从我的实用程序库中随机挑选的有用且多功能的代码片段,没有特定的分类或特定于系统的技巧。 1. 追踪执行时间的技巧如果你想追踪 Go 中函数的执行时间,有一个简单高效的技巧可以用一行代码实现,使用 defer 关键字即可。你只需要一个 TrackTime 函数: 12345678910111213141516// Utilityfunc TrackTime(pre time.T...
golang使用github上fork出来的package
背景最近开发个APP项目用到了Github上的Golang开源的第三方库。虽然项目有一直有在更新,但是提交审核时,系统提示说引用了苹果未公开(私有)或者已经废弃的API)。 Guideline 2.5.1 - Performance - Software RequirementsYour app uses or references the following non-public or deprecated APIs:… 打开项目工程,全局搜索了关键字,结果什么都没有搜到 XD系统也很贴心,不但帮你找出了问题还教你怎么去解决这个问题,上述提到了两个命令工具: strings 检测...
强袭 Blind 75
第 1 周 - 序列在第一周,将通过做一些关于数组和字符串的简单和中等问题来热身。数组和字符串是最常见的问题类型;熟悉它们将有助于奠定坚实的基础,以更好地处理更棘手的问题。 Question Difficulty LeetCode ☑ Two Sum Easy Link ☑ Contains Duplicate Easy Link ☑ Best Time to Buy and Sell Stock Easy Link ☑ Valid Anagram Easy Link ☑ Valid Parenthe...
Golang数组与Slice,以及append函数的陷阱
有时候我们会将slice当做参数传递到函数,给这个slice做一些修改的情况。想到slice是引用传递,可以直接传递slice用作修改,于是可能出现下面这种情况: 12345678910111213141516package mainimport "fmt"func main() { arr := []int{1} modifySlice(arr) fmt.Println(arr) // [1]}func modifySlice(arr []int) { a...
Wails
简介 github: wailsapp/wailsC/S模式,一个后端服务,一个前端页面作为UI。前端可以使用 Vue / React / Angular,可以说很适合偏前端的选手。 Go语言的桌面解决方案来了——Wails,一个能让你使用 Go语言创建漂亮桌面应用的项目。从其官网的描述来看,它提供的解决方案如 Tauri类似,只是后端语言换作了 Go语言,前端开发依旧采用 HTML/CSS/Javascript,采用 Web渲染引擎进行界面绘制。桌面级别的应用开发依然是各个语言争相角逐的领域。 C#有微软推出的 MAUI,以及 WinForm和 WPF,依旧占据桌面应用开发的绝对主导...
快速搭建本地Temporal环境并运行简单demo
1. 运行 Temporal 集群123git clone https://github.com/temporalio/docker-compose.gitcd docker-composedocker-compose up 2. 创建项目创建项目目录: 1mkdir hello-temporal 初始化项目: 1go mod init hello-temporal 下载最新版本的 Go SDK(或者在最后执行go mod tidy): 123go get -u go.temporal.io/sdk@latest# 用于生成唯一 IDgo get github.com/google/...