ICode9

精准搜索请尝试: 精确搜索
  • go std errors2022-06-03 13:04:16

    errors 包用于错误处理 go 中的 error 是一个要求实现 Error() string 方法的接口 // error 这个接口在 builtin 这个包中 type error interface { Error() string } go 自带一个 errorString 的结构体,默认实现了 error 这个接口 type errorString struct { s string } func (

  • Go语言学习——结构体的匿名字段、嵌套结构体、结构体的“继承”2022-06-03 00:03:50

    结构体的匿名字段 匿名字段默认会采用类型名作为字段名 结构体体里的字段是唯一的 不能冲突的 一个结构体中同种类型的匿名字段只能有一个 匿名字段:没有名字的字段 package main import "fmt" // 匿名字段 // 字段比较少也比较简单的场景 // 不常用!!! type person struct { /

  • go中tblschema自动生成model文件2022-06-02 10:35:31

    go中tblschema可以很方便的生成model层文件,但在使用sqlx查询数据时,如果遇到空值,如果使用默认生成的model文件会报 sql: Scan error on column index 3, name “user_id“: converting NULL to int64 解决方法几个,网上都很容易搜得到,下面介绍一个一劳永逸的方法 修改tblschema.go文

  • 【Golang】关于Go中一些常用的知识介绍2022-05-30 00:34:43

    一、哪些类型可以作为map的key ? 1、可比较的类型都可以作为map key boolean 布尔值 numeric 数字 包括整型、浮点型,以及复数 string 字符串 pointer 指针 两个指针类型相等,表示两指针指向同一个变量或者同为nil channel 通道 两个通道类型相等,表示两个通道是被相同的mak

  • Golang 的 Goroutine2022-05-29 23:35:29

    Goroutine的概念 当一个函数创建为goroutine时候,就是在匿名函数前加一个go ,golang会把这个函数当做一个独立的工作单元,然后使用golang内部的逻辑处理器进行执行。golang的逻辑处理器在操作系统之上,并且会将golang的逻辑处理器和操作系统的线程进行绑定。 golang的调度器会在任何

  • go defer & panic & recover2022-05-29 16:34:48

    go defer&panic&recover 1.1 defer //defer 注册延时调用 后注册的先执行,越靠下的defer先执行 //defer 用于注册一个延迟调用,(在函数返回之前调用)常用于释放资源,比如打开一个文件修改,可以添加defer,在函数最后执行 func deferinit1() { fmt.Println(1) } func deferinit2() { fmt

  • go if&if-else2022-05-29 04:31:28

    go if&if-else 1.1 if 判断 //if 语句 func ifinit1() { //或,|| 判断第一个是对的,后面的就不会再判断了 if c,d,e := 3,4,5;c < d && (d < e || c <e) { fmt.Println("True") fmt.Println(c,d,e) } else { fmt.Println("False") } } 2.1 if-el

  • go switch2022-05-29 03:31:43

    go switch 1.1 switch 逻辑判断 default是一个兜底策略 //switch //相当于else if 吧,switch后带表达式时,只能模拟相等的情况,如果不带表达式,case后就可以跟任意的条件表达式,也叫空switch func switchinit1(){ color := "red" switch color { case "white": //相当于 if color =

  • go函数调用栈,Golang 实现结构体数组按多字段排序,panic: test timed out after 30s2022-05-27 17:02:43

    函数调用栈 -gcflags 使用go build -gcflags -S once.go也可以得到汇编代码 -objdump 最终的机器码的汇编可以通过go tool objdump生成。 https://mp.weixin.qq.com/s/zcqzarXMJrDUY5DLXZXY1Q 我们按照编程语言的语法定义的函数,会被编译器编译为一堆堆机器指令,写入可执行文件。程

  • golang1.18 泛型学习2022-05-27 14:35:16

    泛型出现之前 在泛型出现之前,go语言的灵活性很大部分是基于interface{}这个空接口来保证的。任何变量都可以继承空接口,但是在使用变量的时候,就需要对变量进行类型断言。而类型断言是基于反射来实现的,反射中的类型错误在真正运行的时候才会引发panic,而且大量使用反射会使得程序的效

  • go-head获取网站状态码并设置超时时间2022-05-26 17:03:09

    package main import ( "fmt" "net" "net/http" "time" ) var url = []string{ "http://www.baidu.com", "http://google.com", "http://taobao.com", } func main() { //底层调用net的h

  • 英文大小写转换的6种方式2022-05-25 17:34:32

    在线大小写转换 https://ztf.net.cn/tools/enCaseEncode.html   Python print("Hello World!".upper()) print("Hello World!".lower())   JS "Hello World!".toUpperCase() "Hello World!".toLowerCase()   Go package main import (

  • Go接口2022-05-25 11:34:32

    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 */ } /* 实现接口方法 *

  • 标准库之fmt2022-05-24 16:04:51

    1、格式化输出的占位符 //Printf 格式化输出 fmt.Printf("% + v\n", u) //格式化输出结构 fmt.Printf("%#v\n", u) //输出值的 Go 语言表示方法 fmt.Printf("%T\n", u) //输出值的类型的 Go 语言表示 fmt.Printf("%t\n", true) //

  • 11-gRPC进阶2022-05-22 01:31:16

    一 grpc metadata机制 gRPC让我们可以像本地调用一样实现远程调用,对于每一次的RPC调用中,都可能会有一些有用的数据,而这些数据就可以通过metadata来传递。metadata是以key-value的形式存储数据的,其中key是string类型,而value是[]string,即一个字符串数组类型。 metadata使得client

  • 写一个go语言的hello world2022-05-21 22:00:27

    1、编写源码文件 vim first.go package mainimport ( "fmt") func main(){ fmt.Println("hello world,my first go !")   #这里的P大写要注意}   2、编译成二进制可执行文件 go build   报错1: root@VM-0-3-debian:~/mygo# go build go: go.mod file not found in cu

  • Go: go-redis2022-05-20 18:03:57

    https://github.com/go-redis/redis   package main import ( "context" "fmt" "time" "github.com/go-redis/redis/v8" ) var ( ctx context.Context rdb *redis.Client ) func init() { rdb = redis.NewClient(

  • Go: net2022-05-20 17:02:22

      Server: package main import ( "fmt" "net" ) func main() { fmt.Println("net.Listen") listen, err := net.Listen("tcp", "0.0.0.0:5555") if err != nil { fmt.Println(err) return } def

  • Golang第五章:结构体和对象2022-05-18 21:32:29

    Golang面向对象   1. Golang没有类,Go的结构体相对于其它编程语言的类   2. Golang去掉了传统OOP语言的继承、方法重载、构造函数和析构函数、隐藏的指针等等   3. Golang仍有面向对象编程的继承、封装和多态的特性,只是实现方式不同   创建结构体实例的四种方法 type Cat s

  • Go: Custom Sort2022-05-18 18:31:38

    package main import ( "fmt" "math/rand" "sort" "time" ) // Vale Vale结构体 type Vale struct { Name string Age int } func (vale Vale) String() string { return fmt.Sprintf("Name=%v, A

  • golang 实现redis 排行榜同分值情况下按时间升序排序2022-05-17 22:33:35

    在排行榜中实现分数和时间排序 分数相同则按照时间排序 需求分析 redis中zset的long为int64 转为十进制是19位 时间戳10位 毫秒时间戳13位 高位存分数7位 十进制 7位 8字节中拆分 最高位不可用 还剩43位 高22位存分数 低41位存时间戳 golang 代码 package main import ( "fmt"

  • golang通过errgroup单chan多个grouting通讯样例2022-05-17 16:01:41

    直接上代码 package main import ( "errors" "fmt" "golang.org/x/sync/errgroup" ) func main() { group := new(errgroup.Group) nums := []int{0, 1, -1, 2} ch := make(chan int) for _, num := range nums {

  • go 基础defer2022-05-17 11:34:54

    defer func main() { //defer 延迟关键字,可以用于修饰语句 函数,确保在退出时执行 //一般用于资源清理工作 //解锁 关闭文件 //在一个函数中多次调用defer,先入后出 Readfile("test/var_var.go") } func Readfile(filename string) { //go一般把错误放到最后一个参数返回

  • go 类和继承2022-05-17 11:32:57

    类和继承 //Go通过结构体构建类 type Person struct { name string age int gender string score float64 } func (p *Person)Eat() { //类绑定方法 p.name = "hello" fmt.Println("eat") } func (p Person)Eat2() { p.name="world" fmt.Println(&

  • Go从入门到精通——关于golang指针的理解和引用2022-05-16 22:34:48

    关于golang指针的理解和引用 引用:https://studygolang.com/articles/29273 一、Go指针理解     Go 有指针,但是没有指针运算。你不能用指针变量遍历字符串的各个字节。在 Go 中调用函数的时候,得记得变量是值传递的。   通过类型作为前缀来定义一个指针’ * ’:var p * int。现在

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有