OpenSSH 配置文件体系
firewalld services 防火墙内嵌服务
LinuxCentos7-Systemd-Service 自定义编写 Service 应用服务配置说明整理
Go:rune 深度解析:从 Unicode 码点到字符串遍历的艺术

Go:rune 深度解析:从 Unicode 码点到字符串遍历的艺术

rune 的设计哲学

层面Go 的选择开发者收益
存储字符串 = UTF-8 字节序列兼容性高,节省空间(ASCII 高效)
操作rune = Unicode 码点逻辑清晰,避免字节错误
遍历range 自动解码 UTF-8开箱即用,安全可靠
扩展标准库 + x/text 生态支持归一化、断行、排序等高级需求

💬 Go 之父 Rob Pike 的名言
“UTF-8 is the native text format of Go. Strings are UTF-8. Period.”
rune,正是我们与这个“原生格式”对话的桥梁。

Read more
Go:package time

Go:package time

package time

time 转换注意事项

Go 语言指定时间原点

Read more
Go:type 关键词总结

Go:type 关键词总结

type 关键词总结

type 用法:

  • 定义结构体
  • 定义接口
  • 类型别名
  • 类型定义
  • 类型开关
Read more
Go:switch

Go:switch

switch

switch 注意事项

  • fallthrough 不能用在 switch 的最后一个分支。
Go:struct

Go:struct

struct

面向对象 Class 类的底层实现从某些方面说就是结构体,对象的引用就是指针,只是语言把他们封装起来了而已。

Golang 的 Struct 结构体(源于 C 语言,但又有别于 C)的灵活性:
go 语言中并没有像 C++,Java 语言中这类的 Class,它只含有像 C 语言中的结构体,用结构体和指针等特性,完成一个类的作用,很巧妙的使用了指针和结构体,不仅是 go 的面向对象,包括 go 语言中的 map 等操作都是借助了结构体。其实,说白了,C++、Java 等面向对象的语言中,类的底层实现就是结构体,对象的引用就是指针,只是语言把他们封装起来了而已。很多人刚接触面向对象很不理解这些东西也应该缘于此。

Read more
Go:关于 Go 语言:结构体(Struct)-方法(Method)-接收者(Receiver)类型的适用场景选择和命名约定(Go 官方建议)

Go:关于 Go 语言:结构体(Struct)-方法(Method)-接收者(Receiver)类型的适用场景选择和命名约定(Go 官方建议)

关于 Go 语言:结构体(Struct)-方法(Method)-接收者(Receiver)类型的适用场景选择和命名约定(Go 官方建议)

何时使用值类型场景

1.如果接受者是一个 map,func 或者 chan,使用值类型(因为它们本身就是引用类型)。
2.如果接受者是一个 slice,并且方法不执行 reslice 操作,也不重新分配内存给 slice,使用值类型。
3.如果接受者是一个小的数组或者原生的值类型结构体类型(比如 time.Time 类型),而且没有可修改的字段和指针,又或者接受者是一个简单地基本类型像是 int 和 string,使用值类型就好了。

Read more
Go:string

Go:string

string

常用拼接方法

  • += 来拼接
  • bytes.Buffer
  • strings.Builder ( >= go1.10 )
Read more