最近在整《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)
}
三、验证
四、项目工程目录
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
2021-12-08 更新(更改程序入口名,更改可执行程序名,新增时间转换工具的代码):
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 文件服务器搭建起来之后再传上去,就不用第三方什么百度云等第
三方了。
2021-12-08 更新:
下载链接:完整代码文件以及可执行文件/147. 【go 语言】打造属于自己的工具集(一)
2021-12-08 晚 更新(并入时间转化工具):
下载链接:完整代码文件以及可执行文件/148. 【go 语言】打造属于自己的工具集(二)
六、总结
其实这个程序很小,对于程序员们来说很简单,但是一个程序在程序员手里能使用叫程序,能在普通用户手里使用才能叫应用,一定要能服务普通用户,才能创造真正意义上的价值,这也是我对自己的要求。
很喜欢最近听到的一句话:“程序员是万能的”。其实对于普通工作者来说真的太多太多工作能在程序员手上实现自动化,小到 word、excel、pdf……大到图片处理、音频处理、视频处理……只要是软件配合人做的都能通过程序来简化流程,未来的工作中,人的任务是做主观的关键决策,其他的交给程序。