-
golang reflect
所属栏目:[大数据] 日期:2020-12-16 热度:169
在计算机中,反射表示程序能够检查自身结构的一种能力,尤其是类型。通过反射,可以获取对象类型的详细信息,并可动态操作对象。 实现 包手册地址:https://studygolang.com/static/pkgdoc/pkg/reflect.htm Import ("reflect") 常用的主要有?type value kind[详细]
-
Golang微服务:Micro Trace使用opentracing jaeger
所属栏目:[大数据] 日期:2020-12-16 热度:134
trace Micro通过Wrapper实现了三种trace接口, aswxray , opencensus , opentracing ,这里主要关注opentracing,opentracing已成为行业标准。 opentracing 要引入OpenTracing方案,只需要opentracing.NewClientWrapper加入Client或者Server即可。 func NewCl[详细]
-
Golang 实现守护进程实例
所属栏目:[大数据] 日期:2020-12-16 热度:169
package main import ( "fmt" "os" "os/signal" "runtime" "time" "log" "syscall" ) func Agent(nochdir,noclose int) int { var ret1,ret2 uintptr var err syscall.Errno darwin := runtime.GOOS == "darwin" //already a daemon process if syscall.Getp[详细]
-
【Go】 Go 语言环境安装
所属栏目:[大数据] 日期:2020-12-16 热度:187
安装环境/工具 1、Linux(CentOS 7.4版) 2、go1.11.2.linux-amd64.tar Go 语言环境安装 1、下载安装包 安装包下载地址为:https://golang.org/dl/。 如果打不开可以使用这个地址:https://golang.google.cn/dl/。 2、将下载的安装包解压至 安装目录(/data/[详细]
-
从golang-gin-realworld-example-app项目学写httpapi (三)
所属栏目:[大数据] 日期:2020-12-16 热度:67
https://github.com/gothinkster/golang-gin-realworld-example-app/tree/master/users 路由定义 package usersimport ( "errors" "github.com/wangzitian0/golang-gin-starter-kit/common" "gopkg.in/gin-gonic/gin.v1" "net/http")// 路由函数 用于用户注[详细]
-
有效的括号golang实现
所属栏目:[大数据] 日期:2020-12-16 热度:178
给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 输入: " () " 输出: true 输入: " ()[详细]
-
Golang Ker For Jupyter-NoteBook
所属栏目:[大数据] 日期:2020-12-16 热度:52
上篇回顾:VSCode and NoteBook for JavaScript 正常流程 安装Go语言: sudo apt install golang 安装内核的相关依赖包: sudo apt install libzmq3-dev pkg-config Copy包到本地: go get -u github.com/gopherdata/gophernotes 在NoteBook中创建新的内核文[详细]
-
从golang-gin-realworld-example-app项目学写httpapi (四)
所属栏目:[大数据] 日期:2020-12-16 热度:159
https://github.com/gothinkster/golang-gin-realworld-example-app/blob/master/users/routers.go 路由定义 package usersimport ( "errors" "net/http" "github.com/gin-gonic/gin" "github.com/wangzitian0/golang-gin-starter-kit/common")// 路由函数[详细]
-
golang string、int、int64 float 互相转换
所属栏目:[大数据] 日期:2020-12-16 热度:111
#string到int int,err := strconv.Atoi(string) #string到int64 int64,err := strconv.ParseInt(string,10,64) //第二个参数为基数(2~36), //第三个参数位大小表示期望转换的结果类型,其值可以为0,8,16,32和64, //分别对应 int,int8,int16,int32和int64[详细]
-
golang实现base64编解码
所属栏目:[大数据] 日期:2020-12-16 热度:53
golang中base64的编码和解码可以用内置库encoding/base64 package mainimport ( "encoding/base64" "fmt" "log")func main() { input := []byte("hello world") // 演示base64编码 encodeString := base64.StdEncoding.EncodeToString(input) fmt.Println(en[详细]
-
Golang并发原理及GPM调度策略(一)
所属栏目:[大数据] 日期:2020-12-16 热度:193
其实从一开始了解到go的goroutine概念就应该想到,其实go应该就是在内核级线程的基础上做了一层逻辑上的虚拟线程(用户级线程)+ 线程调度系统,如此分析以后,goroutine也就不再那么神秘了。 并发≠并行 假如我们有一段CPU密集型任务,我们创建2000个goroun[详细]
-
golang 调用windows API 中文的处理
所属栏目:[大数据] 日期:2020-12-16 热度:142
Go语言发展势头很猛,其实缺点也很多,好在有广大爱好者提供了无数的库,把优点表现得太好了,搞得什么都是拿来就使用,基本完全不理会指针,性能还不错。 最近在windows下使用遇到一个中文的问题,首先要了解的是Golang的编码是utf-8的,而中文windows的API[详细]
-
golang-uuid
所属栏目:[大数据] 日期:2020-12-16 热度:151
?uuid第三方库可以在github上找,我在这使用的是:github.com/satori/go.uuid PS:不知道哪里原因,使用go mod 管理包,下载的包和github上的不是完全一样,也特意看了版本,都是v1.2.0 生成uuid主要函数: // NewV1 returns UUID based on current timestam[详细]
-
最后一个单词的长度的golang实现
所属栏目:[大数据] 日期:2020-12-16 热度:185
给定一个仅包含大小写字母和空格 ‘ ‘ 的字符串,返回其最后一个单词的长度。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指由字母组成,但不包含任何空格的字符串。 输入: " Hello World " 输出: 5 理解题意: 找到最后一个单词的长度: 如果是[详细]
-
go语言的特性
所属栏目:[大数据] 日期:2020-12-16 热度:188
一、golang语言特性 ?1. 垃圾回收 a、内存自动回收,再也不需要开发人员管理内存? //开发代码中不能存在无引用的变量,不然代码出错 b、开发人员专注业务实现,降低了心智负担 c、只需要new分配内存,不需要释放 2. 天然并发 a、从语言层面支持并发,非常简[详细]
-
golang 三个点(three dots)的用法
所属栏目:[大数据] 日期:2020-12-16 热度:54
已经忘了这是第几次查这个用法了,还是记一下吧~ ^ _ ^ 本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/137 在Golang中,三个点一共会用在四个地方(话说三个点的官方说法是什么?): 变长的函数参数 如果 最后一个 函数参数的类[详细]
-
golang string和[]byte的对比
所属栏目:[大数据] 日期:2020-12-16 热度:117
? 为啥string和[]byte类型转换需要一定的代价? 为啥内置函数copy会有一种特殊情况 copy(dst []byte,src string) int ? string和[]byte,底层都是数组,但为什么[]byte比string灵活,拼接性能也更高(动态字符串拼接性能对比)? 今天看了源码探究了一下。 以[详细]
-
golang包管理工具——glide
所属栏目:[大数据] 日期:2020-12-16 热度:179
1. glide安装 glide是Go的包管理工具。支持语义化版本,支持Git、Svn等,支持Go工具链,支持vendor目录,支持从Godep、GB、GPM、Gom倒入,支持私有的Repos和Forks。 glide 的安装很简单,mac环境下直接 brew install glide 就可以的。装完之后,那么直接使用[详细]
-
echo安装失败,提示unrecognized import path "golang.org/x
所属栏目:[大数据] 日期:2020-12-16 热度:85
echo安装失败,提示unrecognized import path "golang.org/x/crypto/acme/autocert"? ? C:UsersHOORIgo get github.com/labstack/echo package golang.org/x/crypto/acme/autocert: unrecognized import path "golang.org/x/crypto/acme/autocert" (https[详细]
-
golang---map类型
所属栏目:[大数据] 日期:2020-12-16 热度:180
map 类似其它语言中的哈希表或字典,以key-value形式存储数据 key必须是支持==或!=比较运算的类型,不可以是函数、map或slice Map查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍 Map使用make()创建,支持:=这种简写方式 make([keyType]valueType,[详细]
-
golang ---struct
所属栏目:[大数据] 日期:2020-12-16 热度:122
package main import ( "fmt" ) func main() { type Point struct { X,Y int } type Circle struct { Point Radius int } type Wheel struct { Circle Spokes int } var w Wheel //w = Wheel{Circle{Point{8,8},5},20} w = Wheel{ Circle: Circle{ Point: Po[详细]
-
golang 文件基本操作
所属栏目:[大数据] 日期:2020-12-16 热度:77
import ("bufio""fmt""io""os")//写入文件func WriteFile(path string) {//新建文件f,err := os.Create(path)if err != nil {fmt.Println("err=",err)return}//使用完毕需要关闭文件defer f.Close()for i := 0; i 10; i++ {f.WriteString(fmt.Sprintf("i=%d[详细]
-
golang json序列化
所属栏目:[大数据] 日期:2020-12-16 热度:76
结构体序列化 func main() {var j = js{Name: "zhangsan",Age: 16,Sal: 1500.3,Intro: "aihao lanqiu",}json1,_ := json.Marshal(j)fmt.Println(string(json1))mp()slic()} ?map序列化 func mp() {var a = map[string]interface{}{"Name": "lisi","Age": 16,[详细]
-
golang代码解读
所属栏目:[大数据] 日期:2020-12-16 热度:191
? 1)for语句与循环运算 package mainimport "fmt"func main() {sum := 1for ; sum 1000 ; { // 去掉第一个分号: C 的 while 在 Go 中叫做 for。sum += sum // 4= 2+2 4以内输出4 , 8 = 4 + 4 8以内输出8 ;1024 = 512 + 512 }fmt.Println(sum)} 2)指针解[详细]
-
Golang报错mixture of field:value and value initializers
所属栏目:[大数据] 日期:2020-12-16 热度:157
Golang 在使用匿名成员初始化时,如果出现 mixture of field:value and value initializers 是因为初始化的方式不对,见代码: package mainimport ( " fmt " )type Person struct { Name string Age int Sex string }type Student struct { Person Id strin[详细]
