持续更新:Go语言常用语句总结

简介: 持续更新:Go语言常用语句总结

1、把其他类型转化成字符串类型


例:把指针值转换成字符串赋值给一个变量

ListHostnameip := fmt.Sprint(*List)


2、使用结构体构造函数,使用指针类型节约内存开销


type person struct {
  city,name string
  age int
}
func newperson(city1,name1 string,age1 int) *person {
  return &person{
    city: city1,
    name: name1,
    age:  age1,
  }
}
func main()  {
  p1 := newperson("大连","dwz",27)
  p2 := p1.name
  fmt.Println(p1)
  fmt.Println(p2)

运行结果:&{大连 dwz 27} dwz


3、结构体不能使用自动推导,可使用var定义

type person struct {
  city,name string
  age int
}
func main()  {
  var p2  person //var函数定义p2是person结构体类型
  p2.name = "eden"
  fmt.Println(p2.name)
}

运行结果:eden


4、去符号操作


比如获得的API值需要去特殊符号

1、把字符串 s 左边的+ 右边的- 去掉

package main
import (
  "fmt"
  "strings"
)
func main() {
  s := "++-+1234567-+--"
  //去除首部第一次匹配到的关于“+”符号的,和尾部第一次匹配到的关于“-“符号的字符
  s1 := strings.TrimPrefix(s,"+")
  s2 := strings.TrimSuffix(s1,"-")
  fmt.Printf("%v\n", s2) //结果是:+-+1234567-+-
}

2、去除首部匹配到的所有关于“+”符号(匹配不到截至),和尾部关于“-“符号的所有字符(匹配不到截至)

package main
import (
  "fmt"
  "strings"
)
func main() {
  s := "++-+1234567-+--"
  //去除首部分关于“+”符号的,和尾部关于“-“符号的字符
  s1 := strings.TrimLeft(s,"+")
  s2 := strings.TrimRight(s1,"-")
  fmt.Printf("%v\n", s2) //结果是:-+1234567-+
}

3、把所有符号全部去掉

使用strings.ReplaceAll 替换所有匹配的字符,如果把匹配到的字符全部替换成空格,相当于删除所有匹配的字符。

package main
import (
  "strings"
  "fmt"
)
func main()  {
  str := "map[1,2,3,4,5,6]"
  str1 :=strings.ReplaceAll(str,"[","")
  str2 :=strings.ReplaceAll(str1,"map","")
  str3 := strings.ReplaceAll(str2,"]","")
  fmt.Println(str3)
}

运行结果:1,2,3,4,5,6


5、常见接口创建 由结构体–>方法–>接口


先来看下结构体、方法、接口的格式


结构体

结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体中有一个或多个成员。type 语句设定了结构体的名称。结构体的格式如下:

type struct_name_variable struct {
   member definition
   member definition
   ...
   member definition
}

方法

Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。语法格式如下:

func (variable_name variable_data_type) function_name() [return_type]{
   /* 函数体*/
}

接口

Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。

/* 定义接口 */
type interface_name interface {
   method_name1 [return_type]
   method_name2 [return_type]
   method_name3 [return_type]
   ...
   method_namen [return_type]
}
/* 定义结构体 */
type struct_name struct {
   /* variables */
}
/* 实现接口方法 */
func (struct_name_variable struct_name) method_name1() [return_type] {
   /* 方法实现 */
}
...
func (struct_name_variable struct_name) method_namen() [return_type] {
   /* 方法实现*/
}

接口实现 创建结构体—>方法—>接口调用

e.g

package main
import "fmt"
type says interface {
  say1()
  say2()
}
type dog struct {
}
type cat struct {
}
func (d dog) say1() {
  fmt.Println("汪汪~")
}
func (c cat) say2() {
  fmt.Println("喵喵~")
}
func main() {
  da1 := new(dog)
  da1.say1()
}


6、字符串和整型之间的转换


string转成int:

int, err := strconv.Atoi(string)

string转成int64:

int64, err := strconv.ParseInt(string, 10, 64)
• 1

int转成string:

string := strconv.Itoa(int)

int64转成string:

string := strconv.FormatInt(int64,10)
• 1


7、new只能初始化值类型(int、string等),make只能初始化引用类型(map、切片等)


持续更新…

目录
打赏
0
0
0
0
6
分享
相关文章
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
初探Go语言RPC编程手法
总的来说,Go语言的RPC编程是一种强大的工具,让分布式计算变得简单如同本地计算。如果你还没有试过,不妨挑战一下这个新的编程领域,你可能会发现新的世界。
67 10
Go 语言中的 Sync.Map 详解:并发安全的 Map 实现
`sync.Map` 是 Go 语言中用于并发安全操作的 Map 实现,适用于读多写少的场景。它通过两个底层 Map(`read` 和 `dirty`)实现读写分离,提供高效的读性能。主要方法包括 `Store`、`Load`、`Delete` 等。在大量写入时性能可能下降,需谨慎选择使用场景。
企业监控软件中 Go 语言哈希表算法的应用研究与分析
在数字化时代,企业监控软件对企业的稳定运营至关重要。哈希表(散列表)作为高效的数据结构,广泛应用于企业监控中,如设备状态管理、数据分类和缓存机制。Go 语言中的 map 实现了哈希表,能快速处理海量监控数据,确保实时准确反映设备状态,提升系统性能,助力企业实现智能化管理。
87 3
阿里双十一背后的Go语言实践:百万QPS网关的设计与实现
解析阿里核心网关如何利用Go协程池、RingBuffer、零拷贝技术支撑亿级流量。 重点分享: ① 如何用gRPC拦截器实现熔断限流; ② Sync.Map在高并发读写中的取舍。
194 0
基于 Go 语言的公司内网管理软件哈希表算法深度解析与研究
在数字化办公中,公司内网管理软件通过哈希表算法保障信息安全与高效管理。哈希表基于键值对存储和查找,如用户登录验证、设备信息管理和文件权限控制等场景,Go语言实现的哈希表能快速验证用户信息,提升管理效率,确保网络稳定运行。
83 0
eino — 基于go语言的大模型应用开发框架(二)
本文介绍了如何使用Eino框架实现一个基本的LLM(大语言模型)应用。Eino中的`ChatModel`接口提供了与不同大模型服务(如OpenAI、Ollama等)交互的统一方式,支持生成完整响应、流式响应和绑定工具等功能。`Generate`方法用于生成完整的模型响应,`Stream`方法以流式方式返回结果,`BindTools`方法为模型绑定工具。此外,还介绍了通过`Option`模式配置模型参数及模板功能,支持基于前端和用户自定义的角色及Prompt。目前主要聚焦于`ChatModel`的`Generate`方法,后续将继续深入学习。
772 7
eino — 基于go语言的大模型应用开发框架(一)
Eino 是一个受开源社区优秀LLM应用开发框架(如LangChain和LlamaIndex)启发的Go语言框架,强调简洁性、可扩展性和可靠性。它提供了易于复用的组件、强大的编排框架、简洁明了的API、最佳实践集合及实用的DevOps工具,支持快速构建和部署LLM应用。Eino不仅兼容多种模型库(如OpenAI、Ollama、Ark),还提供详细的官方文档和活跃的社区支持,便于开发者上手使用。
1186 8
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问