- 1. type 关键字;
- 2. 定制的 String、类型方法、int 变 string;
- 3. 定制的 String:遍历字符串、Each;
概要:
- 设计模式 web、中间件(consul、etcd、tidb)、偏底层(docker、k8s)
- httpserver、rpc grpc、http3(quic)、go-micro、gokit
- 模板、nginx、gin、gin++
IDE 配置:
# 进入 /Users/go/go2/ go mod init goplus
- 文件 /Users/go/go2/src/String/String.go
package String
type String string //自己定义的 string
// 返回自定义的 String
func From(str string) (String) {
// String 强制转化,本质是一样的
return String(str)
}
- 文件 /Users/go/go2/src/main.go
package main
import (
"fmt"
"goplus/src/String"
)
func main() {
s := String.From("abc")
fmt.Println(s)
}
2. 定制的 String、类型方法、int 变 string;
- 文件 /Users/go/go2/src/String/String.go
package String
import (
"fmt"
)
type String string //自己定义的 string
// 实现类似于类方法的函数
func (this String) Len() (int) {
return len(this)
}
// 返回自定义的 String
func From(str string) (String) {
// String 强制转化,本质是一样的
return String(str)
}
func FromInt(n int) (String) {
// 当成 string 转,直接会当成 ASCII 码值
// 所以调用方法会返回 "{",ASCII 123 对应的符号
// return String(n)
// 第一种写法:内置转化方法
// return String(strconv.Itoa(n))
// 第二种写法
return String(fmt.Sprintf("%d", n))
}
- 文件 /Users/go/go2/src/main.go
package main
import (
"fmt"
"goplus/src/String"
)
func main() {
// s := String.From("abc")
s := String.FromInt(123)
fmt.Println(s)
fmt.Println(s.Len()) //类方法
}
3. 定制的 String:遍历字符串、Each;


