持续更新:Go语言常用语句总结
  8xf0bZZpYkqC 2023年11月02日 36 0


目录

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

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

:= 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)

int转成string:

string := strconv.Itoa(int)

int64转成string:

string := strconv.FormatInt(int64,10)

持续更新…


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: Qt Quick学习笔记 下一篇: ISP Pipeline
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
8xf0bZZpYkqC
最新推荐 更多