【go 语言】打造属于自己的工具集(一)

简介: 打造属于自己的工具集(一)

前言


最近在整《Go 语言编程之旅》,学习这个最重要的目的只有一个:学会 gRPC。学完支持工作。


在这之前有些小片段要过,有三个小工具跟着写,顺便就在这分享一下。


正文


单词转换命令行程序


一、功能如下


  • 单词全部转为小写。
  • 单词全部转为大小。
  • 下划线单词转为大写驼峰单词。
  • 下划线单词转为小写驼峰单词。
  • 驼峰单词转为下划线单词。


二、关键代码


主体逻辑是在将字符转为小写的同时添加下划线“_”。比较特殊的一点在于,如果当前字符不是小写字母、下划线或数字,那么在处理时将对 segment 置空,保证其每一段的区间转换都是正确的,代码如下:


// 驼峰单词转下划线单词
func CameCaseToUnderscore(s string) string {
    var output []rune
    for i, r := range s {
        if i == 0 {
            output = append(output, unicode.ToLower(r))
            continue
        }
        if unicode.IsUpper(r) {
            output = append(output, '_')
        }
        output = append(output, unicode.ToLower(r))
    }
    return string(output)
}


三、验证


77.webp.jpg

验证


四、项目工程目录


78.webp.jpg

工程目录


project_name
    |- a_servers
        |- main_word.go  // 程序入口
    |- build
        |- window
            |- main_word.exe  // 编译之后的可执行最终程序
        |- build-window.bat  // 编译脚本
    |- cmd
        |- root.go
        |- word.go
    |- internal
        |- word
            |- word.go
    |- pkg
    |- go.mod


(更改程序入口名,更改可执行程序名,新增时间转换工具的代码):


project_name
    |- a_servers
        |- main.go  // 程序入口
    |- build
        |- window
            |- tools.exe  // 编译之后的可执行最终程序
        |- build-window.bat  // 编译脚本
    |- cmd
        |- root.go
        |- word.go
        |- time.go
    |- internal
        |- word
            |- word.go
        |- timer
            |- timer.go
    |- pkg
    |- go.mod


五、完整代码文件&最终可执行文件下载


完整代码文件和可执行文件,等我把 FTP 文件服务器搭建起来之后再传上去,就不用第三方什么百度云等第三方了。


六、总结


其实这个程序很小,对于程序员们来说很简单,但是一个程序在程序员手里能使用叫程序,能在普通用户手里使用才能叫应用,一定要能服务普通用户,才能创造真正意义上的价值,这也是我对自己的要求。

很喜欢最近听到的一句话:“程序员是万能的”。其实对于普通工作者来说真的太多太多工作能在程序员手上实现自动化,小到 word、excel、pdf……大到图片处理、音频处理、视频处理……只要是软件配合人做的都能通过程序来简化流程,未来的工作中,人的任务是做主观的关键决策,其他的交给程序。

目录
相关文章
|
2月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
198 1
|
4月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
295 1
|
4月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
396 0
|
4月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
260 0
|
4月前
|
Cloud Native Java 中间件
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
229 0
|
4月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
331 0
|
4月前
|
数据采集 Go API
Go语言实战案例:多协程并发下载网页内容
本文是《Go语言100个实战案例 · 网络与并发篇》第6篇,讲解如何使用 Goroutine 和 Channel 实现多协程并发抓取网页内容,提升网络请求效率。通过实战掌握高并发编程技巧,构建爬虫、内容聚合器等工具,涵盖 WaitGroup、超时控制、错误处理等核心知识点。
|
4月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
5月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
5月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
400 0