首页 > TAG信息列表 > FMT
二叉树序列化反序列化
Golang代码 package main import ( "fmt" "strconv" "strings" ) type Treenode struct { Val int Left, Right *Treenode } func Serialization(node *Treenode) string { if node == nil { return "nil" } tmpgo之切片
定义 切片是由数组建立的一种方便、灵活且功能强大的包装,切片本身不拥有任何数据。他们只是对现有数组的引用。切片底层以来于数组,是对数组的引用 底层数组如果发生变化,切片也变了;切片发生变化,层数组也变化 切片定义 基于数组生成切片 package main import "fmt" fruntime标准库
runtime标准库 runtime包提供和go运行时环境的互操作,如控制goroutine的函数。 它也包括用于reflect包的低层次类型信息。 1. 环境变量 环境变量GOGC设置最初的垃圾收集目标百分比。当新申请的数据和前次垃圾收集剩下的存活数据的比率达到该百分比时,就会触发垃圾收集。默认GOGC=1Go语言sync.Map的简单使用(map是线程不安全的)
Go语言sync.Map的简单使用(map是线程不安全的) 1、map是线程不安全的 Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的。 可以这么复现,会报错: fatal error: concurrent map read and map write package main import ( "fmt" "time" ) var count = 10000使用 json.Unmarshal(),反序列化时,出现了科学计数法
1.问题现象描述 使用 json.Unmarshal(),反序列化时,出现了科学计数法,参考代码如下: jsonStr := `{"number":1234567}` result := make(map[string]interface{}) err := json.Unmarshal([]byte(jsonStr), &result) if err != nil { fmt.Println(err) } fmt.Println(result) // 输出go 接口interface
接口interface go 中以关键字interface代表接口 interface 可以用于多态, 还可以接受任意数据类型, 类似void 用例: package main import ( "fmt" ) func main() { var q, w, e interface{} // 空接口 n2 := []string{"haha", "xixi"} q = n2 fmt.Printf("thisk8s证书监控
用于监控k8s节点上crt或者pem证书的有效期时间 使用方法 go run main.go --crtDir crtDir用于指定证书的目录 package main import ( "crypto/x509" "encoding/pem" "flag" "fmt" "io/ioutil" "net/http" "os" "s重温Go语法笔记 | 容器
容器 数组的声明 // 初始化声明 q := [...]int{1,2,3} // 仅声明 var a [3]int 切片 切片的概念 对数组连续片段的引用 // 根据数组生成切片 var a = [3] int {1,2,3} fmt.Println(a[1:2]) // 初始化声明切片 a := []int{1,2,3} // 直接声明一个新的切片 var strList [我的设计模式之旅 ⑤ 装饰模式
一个菜鸟的设计模式之旅,文章可能会有不对的地方,恳请大佬指出错误。 编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。 程序介绍 本程序实现装饰模式。小明和小王去吃沙县小吃,各自喜欢不同的搭配,需要考虑每个人饮食喜好不同,随时可能的变化。 小明想吃不带汤的面Golang 实现strtotime 字符串转换为时间戳的方法
在php中,有strtotime 将字符串转换为时间戳,在Golang 中,同样可以实现类型的函数。 1 package main 2 3 import ( 4 "fmt" 5 "time" 6 "regexp" 7 "strings" 8 "strconv" 9Gin实践 连载六 Golang优雅重启HTTP服务
http.Server-Shutdown() package main import ( "context" "fmt" _ "gin_log/models" "gin_log/pkg/setting" "gin_log/routers" "log" "net/http" "os" "os/signal"延宕执行,妙用无穷,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中defer关键字延迟调用机制使用EP17
先行定义,延后执行。不得不佩服Go lang设计者天才的设计,事实上,defer关键字就相当于Python中的try{ ...}except{ ...}finally{...}结构设计中的finally语法块,函数结束时强制执行的代码逻辑,但是defer在语法结构上更加优雅,在函数退出前统一执行,可以随时增加defer语句,多用于系统资源的GO语言自学_013_接口
代码 package main import "fmt" /* go语言中,有专门的关键字表示接口:interface interface不仅可以处理多态,还可以接收任意的数据类型。 */ func main() { // 定义三个接口 var i, j, k interface{} names := []string{"Duke", "Lily"} age := 20 str := "Hello" i =[GO] Pass by reference
func changeName(name *string) { *name = strings.ToUpper(*name) } // Coordinates type Coordinates struct { X, Y float64 } func main() { name := "Elvis" changeName(&name) fmt.Println(name) // ELVIS var c = Coordinates{X: 10, Y: 20} /[Go] Error
package main import ( "errors" "fmt" "strings" ) func shouldGreaterThanTen(num int) error { if num < 10 { return errors.New("Number is less than 10") } return nil // should return nil if no error } fu[Go] Defer, panic, recover
package main import ( "fmt" ) func recoverFromPanic() { fmt.Println("defer") } func doThings() { defer recoverFromPanic() for i := 0; i < 5; i++ { fmt.Println(i) if i == 2 { panic("NOT 2") // If there is a pa[Go] Pointer
var name string var namePointer *string // Pointer name = "Beyonce" namePointer = &name // Assign a Pointer fmt.Println("Name: ", name) fmt.Println("Name *: ", *namePointer) // Need to add * to get valuegolang指定客户端的端口
当客户端去连接服务端时,端口号是随机的,如果需要指定客户端端口号,就不要指定IP,否则会一直报错的,程序如下: netAddr := &net.TCPAddr{Port: 51860} d := net.Dialer{LocalAddr: netAddr} conn, err := d.Dial("tcp", "127.0.0.1:38001") if err != nil { fm[Go] Package
Create a new folder utilswith a new file math.go package utils import ( "fmt" ) func printNum(num int) { fmt.Println("Current number is: ", num) } // Add multi int number together return total int func Add(nums ...int) int {参加了个算法比赛,真是一言难尽啊
hello大家好呀,我是小楼。 上周参加了一个区的程序员技能比赛的初赛,其实就是算法比赛,虽然最后结果是过了初赛,但过程真是一言难尽啊。 这次的算法比赛和ACM非常类似,虽然我大学是数学专业,虽然大学也修过ACM这门课,但是我的算法是真的不行,很菜很菜的那种。 好在这次比赛是组(抱大腿)队模记录一次go打印金字塔,空心金字塔
金字塔 package main import "fmt" // 案例说明: 用户输入金字塔高度,打印金字塔 func main() { //思路整理: // 需要获得的数据 // 1.获得金字塔高度 // 2.获得前面空白符数量,观察金字塔得出,最上面一行金字塔高度为: 高度 -1 ,每向下一行 -1 // 3.星号:[Go] switch - fallthrough
fallthrough keyword is used in switch statement in golang. This keyword is used in switch case block. If the fallthrough keyword is present in the case block, then it will transfer control to the next case even though the current case might have matched.[Go] Types - Reflect.TypeOf()
Can use reflect.TypeOf to get variable type package main import ( "fmt" "reflect" ) func main() { // var age int = 21 // var b bool = age >= 23 var age = 21 var b = age >= 23 fmt.Println(reflect.TypeOf(age))Golang基础-2
Golang基础2 指针 如果声明变量var x int ,则&x是获取x值所在的地址,类型是整型指针(*int),即我们可以声明一个变量来接收其返回值 var p *int=&x 那么p就是一个指针变量 age:=18 // 这里是输出i变量对应的地址通过&+名字获取 fmt.Println(&age) 这里我们要得到通过ptr指针time包使用
✍️ time包在实际中经常用到,可以对比python中的time库进行学习 1、获取年月日 func timeDemo() { now := time.Now() //获取当前时间 fmt.Printf("current time:%v\n", now) year := now.Year() month := now.Month() day := now.Day() hour := now.Hour() minute := now