结束了概率论,我们数据之旅的下一站是统计。这一篇,是统计的一个小介绍。 统计是研究数据的学科。它包括描述数据,推测群体信息,判断假设的真伪。统计是一门实用学科。人们利用统计,寻找下一个NBA巨星,推测
第一节 Beego简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado
安装 在mac上,用brew安装很方便: brew install go 2. 查看环境 brew安装的好处是安装完还会配好环境变量,可以查看: go env 3. 运行 查看下效果: go run demo.go 5. 编译 生成二进制程序: go build demo.go 6. 交叉编译 生成跨平台程序: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH =amd64 go build main.go CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go 7. 总结 go的理念就是简单、简洁、高效,连IDE也只需普通的文本编辑器也可以胜任,看上述的短短内容就已经完成安装、demo开发和发布的功能,有兴趣的就来尝试一下吧。
“Go coding in go way”,中文含义就是用“Go语言编程思维去写Go代码”。 这里要和大家交流的内容都是基于Go诞生七年多以来我个人对Go的设计者、Go team以及Go主流社区的观点和代码行为的整理、分析和总结。 由于Go语言上手容易,在转Go的初期大家很快就掌握了Go的语法。 Go语言的价值观的形成我觉得至少有三点因素 1、语言设计者&Unix文化 Go语言价值观形成是与Go的初期设计者不无关系的,可以说Go最初设计者主导了Go语言价值观的形成! 无论是Go语言设计还是Go语言使用,都受到上述价值观的影响。接下来我们逐个来看一下Go语言价值观主导下的Go语言编程思维,并看看每种编程思维在语言设计、标准库实现以及主流Go开源项目中的应用体现。
kubernetes的客户端SDK,可以在集群外操作k8s链接地址:https://kubernetes.io/docs/reference/using-api/client-libraries/前提环境:1.安装go 开发环境2.获取go-client测试本示例通过展示操作namespace 来实现client-go与集群交互package mainimport ( "flag" "fmt" apiv1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes " "k8s.io/client-go/tools/clientcmd")func main() { // 配置 k8s 集群外 kubeconfig 配置文件 var kubeconfig build main.go会生成一个main的二进制文件图片执行二进制文件也可以操作集群图片
最近发现技术交流群里很多人在询问 go get 墙外包失败的问题,大家给了很多解决方案: 从 Github 的代码库 clone 设置 GOPROXY 环境变量配置代理, 例如:GOPROXY=https ://goproxy.io 配置命令行代理,https_proxy 环境变量 使用 go mod replace 使用 Gopm 类似的工具 …… Go 的社区很活跃,国内 gopher 对 Go 的热情不会因为墙的存在而减少 上面的方法都是可行的,但是总有一些不尽人意,社区也一直在找更好的方法,我一直使用自动代理的方式获取墙外的包,可以支持所有 Go 原生拉取包操作,比如 go get、go mod、dep、godep、glide go get 自动代理的环境,以后需要访问外国网站操作的指令运行时加 proxy 就可以了,该方法并不只适用于 go get,任何需要命令行代理都可以使用。 前期我使用 go 的时候遇到下载不了的包时,就会在 go get 前加上 proxy 指令,但是我发现拉取 Github 包的效率非常低,本身国内现在访问 Github 已经很快了。
upgrade go 123 brew updatebrew install gobrew upgrade go 下载镜像: ? 安装完成之后的目录: Shell cd /usr/local/go/bin 1 cd /usr/local/go/bin 查看系统 go 的信息: ? Shell which go cd /usr/local/bin rm go gofmt sudo ln -s /usr/local/go/bin/go go sudo ln -s /usr/local /go/bin/gofmt gofmt 12345678 which go cd /usr/local/bin rm go gofmt sudo ln -s /usr/local/go/bin/go gosudo ln -s /usr/local/go/bin/gofmt gofmt 喜欢(0) 打赏
使用锁,保证变量并发的正确性;由于没有接触过实际的工程场景,因此进行了简短的调研,下面是一些相关材料的记录; 深入Go并发编程研讨课:https://github.com/smallnest/dive-to-gosync-workshop https://golang.org/src/sync/map.go sync.map https://blog.csdn.net/a348752377/article/details/104972194
这些基本功能单元的累加就构成了Go应用,因此Go应用的本质就是一组Go包的集合。Go包还是编译时的最小单位。也就是说,Go编译器编译代码时会以包为单位进行编译,而不是以文件为单位。 Go包之间不能存在循环依赖,由于无环,包可以被单独编译,也可以并行编译;已编译的Go包的目标文件中记录了其所依赖包的导出符号信息。Go编译器在读取该目标文件时不需进一步读取其依赖包的目标文件。 在Go与C语言互操作(Interoperability)方面,Go更是提供了强大的支持。尤其是在Go中使用C,你甚至可以直接在Go源文件中编写C代码。 在如下一些场景中,可能会涉及到Go与C的互操作:1、提升局部代码性能时,用C替换一些Go代码。C之于Go,好比汇编之于C。2、嫌Go内存GC性能不足,自己手动管理应用内存。 testcontainers-go是一个Go语言开源项目,专门用于简化创建和清理基于容器的依赖项,常用于Go项目的单元测试、自动化集成或冒烟测试中。
Hi,我是行舟,今天和大家一起学习Go语言的函数。 函数是Go语言中的一等公民,既可以单独定义,也可以作为参数传递。 Go语言中函数和方法不是一个概念,方法是属于结构体的。 传入参数是一个或者多个,返回值也是一个或者多个(这一点和别的语言不太一样,Go语言支持多返回值)。 在Go语言中,传入参数和返回参数完全相同的函数是同一类函数。 Go语言中的类型(type)也是非常重要的概念,我们后续单独写文章介绍,当前只需要记住判断两个函数是否同类型的标准就可以了。 返回值 Go语言中的函数可以有多个返回值,同时我们也可以对返回值进行命名。 Go语言中函数的最后一个形参类型前加...代表不限定参数个数。
module简介 在 go1.12,go发布了官方的包管理工具 Go Module 使用module 生成go.mod 新建一个文件夹作为项目目录,执行 go mod init 模块名称 使用mod初始化项目 ,生成项目依赖管理文件go.mod 这个文件也可以手动创建,无伤大雅 初始化后的go.mod文件内容如下 module test go 1.14 添加依赖 通过在go.mod中,添加require语句 github.com/99designs/gqlgen master require直接通过github地址和版本号(tag)来下载对应依赖 下载依赖 执行下面语句,自动将依赖安装到本地缓存(GOPATH) go mod download 编译运行 在项目目录创建主类源代码,接下来就可以执行编译运行命令了,比如是main.go go build main.go . /main.exe 清除多余依赖 go mod tidy 会修改go.mod,删除掉没有用的依赖 修改仓库代理 go env -w GOPROXY=https://goproxy.cn,direct
项目中使用到Go,两天看文档,一周出产品,第一次体验Go来开发,虽然写起代码很舒服,但是遇到xml转换是真的麻烦,没有php开发快啊,哈哈。不过Go是真的值得学习。先看下xml转结构体。
在2009年11月,Go语言首次在开源项目中正式发布,标志着Go语言开始吸引更广泛的开发者关注。 Go语言的优势和特点 Go语言因其独特的优势和特点,吸引了越来越多的开发者。 Go语言的版本历史 自Go语言的首次发布以来,其版本历史经历了多个里程碑,每个版本都带来了许多重要的改进和优化。下面是Go语言的版本历史: 1. Go 1 - 2012年3月 Go语言的首个稳定版本是Go 1,于2012年3月发布。Go 1版本的发布标志着Go语言的稳定性,Go语言的核心团队承诺Go 1及其之后的版本将保持向后兼容。 2. Go 1.17 - 2021年8月 Go 1.17于2021年8月发布,这是Go语言的最新版本。 Go 1.17的发布标志着Go语言持续发展的步伐,团队不断改进和优化Go语言,使其成为一门更加强大和高效的编程语言。
Go是一门支持模块化开发的语言,它提供了一种包管理机制来方便我们管理和复用代码。包管理机制在Go中,我们使用import关键字来导入其他包中的代码。 当我们使用import导入一个包时,Go会自动到$GOPATH环境变量指定的目录中寻找对应的包。如果找到了对应的包,Go就会将该包编译成一个静态库,并将其保存在$GOPATH/pkg目录中。 除了$GOPATH,Go还支持使用go mod命令来管理包。使用go mod管理包可以避免将包安装到$GOPATH中,而是将它们直接下载到我们的项目目录中。 go install命令go install命令用于编译并安装一个包或一个可执行文件。 以下是go install命令的一些示例:安装一个包go install example.com/mypackage上述命令将example.com/mypackage包编译成静态库,并将其保存到$GOPATH
36 const flag bool = false const isRead bool = true const str string = "ok" const bookName string = "Go 当然可以,要知道GO语言是最懂程序员的哟 :) const PI = 3.1415926535897932 const EluerE = 2.718281828459045 const value = GO是怎么区分常量/变量是对内还是对外的呢? ,代码想怎么写就怎么写,无论怎么写好像都符合GO的语法。 借用知乎用户的话讲:GO语言是一门看似简单实际并不简单,貌似外表丑陋实则另有考究的语言。 ----
最近几天在看一本Go的书籍,看了100来页,感觉不错,分享给大家。 内容简介 本书全面介绍使用Go语言开发Web应用所需的全部基本概念,并详细讲解如何运用现代设计原则使用Go语言构建Web应用。 本书除了讲解具体的Web开发方法,还介绍如何对Go Web应用进行测试,如何使用Go的并发特性提高Web等 作者简介 (新加坡)郑兆雄(Sau Sheong Chang) 著;黄健宏 译 著作 郑兆雄( Sau Sheong Chang),既是新加坡能源有限公司的数字技术总裁,也是Ruby社区以及Go社区的活跃贡献者,著有《Go Web编程》《R和Ruby数据分析之旅》等4 部著作。 站长在看本书时先把Go中文文档看了一遍,算是有了一点Go基础: https://go.p2hp.com/doc/ Go中文文档 看这个网址也是同样的建议,别只是看,动手做。
数组的长度是固定的,因此在Go语言中很少直接使用数组。 Go语言中有一种和和数组强相关的类型是Slice(切片),它是可以增长和收缩的动态序列,功能也更灵活,但是要理解slice工作原理的话需要先理解数组。 在这个方面,Go语言对待数组的方式和其它很多编程语言不同,其它编程语言可能会隐式地将数组作为引用或指针对象传入被调用的函数。 由于这些原因,除了像SHA256这类需要处理特定大小数组的特例外,数组依然很少用作函数参数;相反,Go语言中一般使用slice来替代数组。
项目使用 Go mod 比较常见的一个问题就是 unknow revsion,如下图。 ? 一定要清楚,go mod 用的是 go get,go get 调用的是 git,git 分为 https 或者 ssh,沿着这个线索,基本上就能找到原因。 高阶一点的可以去看一下 Go 的源码,看下 get 的工具是如何运用 git 来控制依赖的。 我这里碰到的问题是因为本地的 /root/.gitconfig/ 受到了污染,就是莫名其妙多了一些配置,去掉之后再使用 go mod download 就可以成功下载依赖了。
1、首先在原有项目里直接删除 vendor 这个文件夹 rm -rf vendor/ 2、初始化 go mod init 3、下载依赖包 go mod tidy #等待下载完毕 4 、运行main.go 文件会发现 go.mod里面文件都加载完毕
” Go系列: Go(一)基础入门 Go(二)结构体 Go(三)Go配置文件 Go(四)Redis操作 熟悉使用SpringBoot的同学,再去使用Go之后,就会发现SpringBoot的配置文件是真的很方便 而在Go,他却不支持这样的做法,那么,我们只能自己实现类似于SpringBoot配置文件的做法了。 前提:引入依赖 go get gopkg.in/yaml.v2 需要做的就是将配置文件中的信息读取出来,并且绑定到相应的结构体当中。 /article/details/119995581 [3] Go(三)Go配置文件: https://blog.csdn.net/qq_41929184/article/details/120078698 [4] Go(四)Redis操作: https://blog.csdn.net/qq_41929184/article/details/120074654