avatar
文章
185
标签
42
分类
24

首页
时间轴
分类
标签
资源
码农小山
搜索
首页
时间轴
分类
标签
资源
Go扩展包(三):time(时间包)
发表于2021-04-03|编程Go
1.获取时间1.1 当前时间1234567891011121314unix := time.Now().Unix()fmt.Printf("当前时间戳(单位秒): %v \n",unix)nano := time.Now().UnixNano()fmt.Printf("当前时间戳(单位纳秒): %v\n",nano)format := time.Now().Format("2006-01-02 15:04:05")fmt.Printf("当前时间(Y-m-d H:i:s): %v\n",format)format2 := time.Now().Format("20060102150405")fmt.Printf("当前时间(YmdHis): %v\n",format2)/**当前时间戳(单位秒): 1616251448 当前时间戳(单位纳秒): 1616251448041163000当前时间(Y-m-d H:i:s): 2021-03-20 22:44:08当前时间( ...
Go扩展包(二):strconv(字符串转换)
发表于2021-04-02|编程Go
1.转换成其他类型(Parse类函数)1.1 转换成整型(Atoi)1.语法1func Atoi(s string) (int, error) 2.使用示例1234567891011121314package mainimport ( "fmt" "strconv")func main() { // 将字符串转成整型 s := "666" sInt,err := strconv.Atoi(s) if err == nil { fmt.Printf("将字符串:%s 转成整型:%d 类型: %T \n",s,sInt,sInt) }}//将字符串:666 转成整型:666 类型: int 1.2 解析成整型(ParseInt)1.语法1func ParseInt(s string, base int, bitSize int) (i int64, err error) base:表示进制(2到36)。如果base=0,则根据字符串前缀判断,0x:表示十 ...
Go扩展包(一):strings(字符串操作)
发表于2021-04-01|编程Go
1.字符串查找strings是Go内置的标准包,主要用于字符串查找、替换、比较等。常用方法如下: 1.1 方法列表 方法名 描述 Count(s, substr string)int 返回字符串s包含字符串substr的个数 Contains(s, substr string)bool 判断字符串s是否包含substr字符串 ContainsAny(s, chars string)bool 判断字符串s是否包含chars字符串中的任意一个字符 ContainsRune(s string, r rune)bool 判断字符串s是否包含unicode的码值r LastIndex(s, substr string)int 返回字符串s中字符串substr最后一次出现的位置 Index(s, substr string)int 返回字符串s中字符串substr首次出现的位置 IndexByte(s string, c byte)int 返回字符串s中字符c首次出现的位置 IndexRune(s string, r rune)int 返回unicode的码值 ...
Go工具(一):gvm
发表于2021-03-01|编程Go
1. 什么是GvmGo 语言版本管理器(Gvm)是管理 Go 语言环境的开源工具。Gvm 「pkgsets」 支持安装多个版本的 Go 并管理每个项目的模块。它最初由 Josh Bussdieker 开发,Gvm 与 Ruby RVM 类似,允许你为每个项目或一组项目创建一个开发环境,分离不同的 Go 版本和包依赖关系,来提供更大的灵活性,以防不同版本造成的问题。Gvm 主要有以下几个特性: 管理 Go 的多个版本,包括安装、卸载和指定使用 Go 的某个版本 查看官方所有可用的 Go 版本,同时可以查看本地已安装和默认使用的 Go 版本 管理多个 GOPATH,并可编辑 Go 的环境变量 可将当前目录关联到 GOPATH 可以查看 GOROOT 下的文件差异 支持 Go 版本切换 gvm Star6.8k 源码地址:https://github.com/moovweb/gvm 2. 安装Gvm1bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/ ...
Go实操(四):遍历使用
发表于2021-02-04|编程Go
1. 遍历字符串(string)1.1 统计长度后遍历12345678func ForString() { str := "hello word" //1.统计长度后遍历 length := len(str) for i := 0; i < length; i++{ fmt.Printf("字符: %c ",str[i]) }} 1.2 转为byte后遍历1234567func ForString() { str := "hello word" strByte := []byte(str) for _,v := range strByte{ fmt.Printf("字符: %c ",v) }} 2. 遍历数组(array)2.1 遍历一维数组1234567func ForArray() { //遍历一维数组 arr := [5]int{1, 2, 3, 4, 5} for _, v : ...
Go实操(三):Map使用
发表于2021-02-03|编程Go
1.创建1countryMap = make(map[string]string) 2.插入12/* map 插入 key-value */countryMap["ShengRI"] = "1988-04-09" 3.取值12345/* 使用 key 输出 map 值 */for country := range countryMap { fmt.Println("Capital of",country,"is",countryMap[country])} 4.key是否存在12345678/* 查看元素在集合中是否存在 */captial, ok := countryMap["ShengRI"]/* 如果 ok 是 true, 则存在,否则不存在 */if(ok){ fmt.Println("Capital of United States is", captial)} else { fmt ...
Go实操(二):时间处理
发表于2021-02-02|编程Go
1.获取当前时间戳1fmt.Println(time.Now().Unix()) //1561713322 2.格式化时间1234567891011121314fmt.Println("时间:",time.Now().Format("20060102150405"))fmt.Println("时间1:",time.Now().Format("2006/01/02 15:04:05"))fmt.Println("时间2:",time.Now().Format("2006-01-02 15:04:05"))fmt.Println("时间3:", time.Now().Format("2006-01-02"))fmt.Println("时间4:", time.Now().Format("15:04:05"))/**输出:时间: 20190628172052时间1: 2019/06/28 17: ...
Go实操(一):字符串操作
发表于2021-02-01|编程Go
在GO中字符串是用双引号(“”)或反引号(``)括起来,而且字符串不可变 1 字符串操作1.1 修改字符串直接修改字符串报错,如下代码: 123456var s string = "hello word"s[0] =`a`//报错# command-line-arguments...cannot assign to str[0] 通过转[]byte类型修改字符串 12345var s string = "hello word"slice := []byte(s)slice[0] ='H'newStr := string(slice)fmt.Println(newStr) 此处的 slice[0] =’H’ 不能写成 slice[0] =”H”,否则会报错:cannot use “H” (type string) as type byte in assignment 1.2 字符串转[]byte 类型12var s string = "hello word"s ...
Go学习(二十七):反射使用
发表于2021-01-27|编程Go
1.介绍Go语言实现了反射,所谓反射就是动态运行时的状态。我们一般用到的包是reflect包,reflect 实现了运行时的反射能力,能够让程序操作不同类型的对象。反射包中有两对非常重要的函数和类型,两个函数分别是: 方法名 描述 reflect.TypeOf 可以获得任意值的类型对象,返回类型:reflect.Type reflect.ValueOf 可以获得任意值的值对象,返回类型:reflect.Value 反射包中的所有方法基本都是围绕着 reflect.Type 和 reflect.Value 两个类型设计的。我们通过 reflect.TypeOf、reflect.ValueOf 可以将一个普通的变量转换成反射包中提供的 reflect.Type 和 reflect.Value,随后就可以使用反射包中的方法对它们进行复杂的操作。 2.reflect.Type类型 reflect.Type 是反射包定义的一个接口,我们可以使用 reflect.TypeOf 函数获取任意变量的类型,reflect.Type 接口中定义了一些方法,常用的如下: 2.1 常用 ...
Go学习(二十六):Md5/Sha1/Base64
发表于2021-01-26|编程Go
1.生成Md5123456789101112131415161718192021222324252627282930package mainimport ( "crypto/md5" "fmt" "io")func main() { str := "Hello Word" // 方法一 sum := md5.Sum([]byte(str)) // 转成16进制 md51 := fmt.Sprintf("%x", sum) fmt.Println("方法一: " + md51) // 方法二 hash := md5.New() // 将str写入到hash _, err := io.WriteString(hash, str) if err != nil { fmt.Println(err.Error()) } // 转成16进制 md52 := fmt.Sprintf("%x",hash.Sum(nil)) fmt. ...
Go学习(二十五):操作数据库-MYSQL
发表于2021-01-25|编程Go
1.介绍Go官方提供了database包,database包下有sql/driver。该包用来定义操作数据库的接口,这保证了无论使用哪种数据库,操作方式都是相同的。但Go官方并没有提供连接数据库的driver,如果要操作数据库,还需要第三方的driver包。 2.下载安装驱动go-sql-driver驱动源码地址: https://github.com/go-sql-driver/mysql 2.1 安装驱动1go get -u github.com/go-sql-driver/mysql 3.匿名导入通常来说,导入包后就能调用该包中的数据和方法。但是对于数据库操作来说,不应该直接使用导入驱动包所提供的方法,而应该使用 sql.DB对象所提供的统一的方法。因此在导入MySQL驱动时,使用了匿名导入包的方式。 匿名导入包: 只导入包但是不使用包内的类型和数据,使用匿名的方式: 在包路径前添加下划线_ 123import ( _ "github.com/go-sql-driver/mysql") 在导入一个数据库驱动后,该驱动会自行初始化并注册到Go的datab ...
Go学习(二十四):文件操作
发表于2021-01-24|编程Go
1.介绍在Go语言中,文件操作的大多数函数都在os包里面,文件的信息包括:文件名、文件大小、修改权限、修改时间等。 1.1 文件接口属性(FileInfo)12345678type FileInfo interface { Name() string // 文件名 Size() int64 // 文件大小 Mode() FileMode // 修改权限 ModTime() time.Time // 最后修改时间 IsDir() bool // 判断是否是目录 Sys() interface{} // 文件的详细信息,获取的值是*syscall.Stat_t类型 } 1.2 文件信息结构体(fileStat)1234567type fileStat struct { name string size int64 mode FileMode modTime time.Time sys syscall.Stat_t} 1.fileStat结构体的常用方法 ...
Go学习(二十三):JSON使用
发表于2021-01-23|编程Go
1.Map转JSON12345678910111213141516171819202122232425262728293031323334package mainimport ( "encoding/json" "fmt")func main() { // map里面 map1 := map[string]string { "name":"张三", "age":"18", "home":"北京", } // 将map解析成json json1, err := json.Marshal(map1) if err != nil { fmt.Println(err.Error()) } fmt.Printf("json1: %s 类型: %T \n",json1,json1) map2 := map[string][]string { & ...
Go学习(二十二):Web开发-HTTP客户端的实现
发表于2021-01-22|编程Go
1.怎么实现HTTP协议客户端?Go语言标准库内置了net/http包,涵盖了HTTP客户端和服务端具体的实现方式。内置的net/http包提供了最简洁的HTTP客户端实现方式,无须借助第三方网络通信库,就可以直接使用HTTP中用得最多的GET和POST方式请求数据。 实现HTTP客户端就是客户端通过网络访问向服务端发送请求,服务端发送响应信息,并将相应信息输出到客户端的过程。实现客户端有以下几种方式。 2.Get请求2.1 使用http.NewRequest1. 源码12345// method:GET | POST// url:func NewRequest(method, url string, body io.Reader) (*Request, error) { return NewRequestWithContext(context.Background(), method, url, body)} 2. 使用示例1234567891011121314151617181920212223242526272829303132333435363738394 ...
Go学习(二十一):Web开发-HTTP服务端接收参数的几种方式
发表于2021-01-21|编程Go
1.获取GET参数1.1 方法列表 方法名 描述 (r *Request) ParseForm() error 判断是否解析传参时出错 (r *Request) FormValue(key string) string 接收指定key的参数值 1.2 使用示例12345678910111213141516171819202122232425262728// 服务端代码package mainimport ( "fmt" "net/http")func main() { http.HandleFunc("/login", login) _ = http.ListenAndServe(":8888", nil)}func login(w http.ResponseWriter, r *http.Request) { // 判断参数是否是Get请求,并且参数解析正常 if r.Method == "GET" && r.Parse ...
1…10111213
avatar
Shershon
你可以不优秀,但内心一定要强大!
文章
185
标签
42
分类
24
Follow Me
公告
最新文章
Java进阶(一):HashMap2023-12-23
Java进阶(一):ArrayList2023-12-19
秒杀场景常用解决方案2023-07-07
Go底层探索(三):切片2023-03-10
Go底层探索(二):字符串2023-03-08
分类
  • 专题8
    • web安全2
    • 其他4
    • 秒杀1
    • 高并发1
  • 后端15
    • Linux1
    • MySQL7
标签
Charles Gin框架 Gin集成 Git Go基础 Go实战 Go实操 Go工具 Go底层探索 Go扩展包 Go标准包 Go进阶 Java进阶 Linux MySQL Nginx PHP-web和框架 PHP7源码 PHP基础 PHP扩展 PHP进阶 RESTful RPC RabbitMQ Redis Yii2集成 web安全 加密/解密 操作系统 数据库和缓存一致性 数据结构 框架开发 正则表达式 消息队列 秒杀 算法 缓存 编码/解码 计算机网络 认证
归档
  • 十二月 20232
  • 七月 20231
  • 三月 20233
  • 二月 20231
  • 十月 20221
  • 九月 20229
  • 八月 20224
  • 五月 202269
网站资讯
文章数目 :
185
本站访客数 :
本站总访问量 :
最后更新时间 :
©2022 - 2024 By Shershon
框架 Hexo|主题 Butterfly
鄂ICP备2022015295号-1
搜索