《Go名库讲解》Macaron 系列课时 1:初识 Macaron
- 课程主页:http://t.cn/RzPWX6M - 网易云课堂:[在线学习](http://study.163.com/course/courseLearn.htm?courseId=510006#/learn/video?lessonId=1051887&courseId=510006) ## 课时大纲 [00:00] 框架简介 [05:31] 最简实例 [14:13] 扩展示例 [23:54] 小...阅读全文
- 课程主页:http://t.cn/RzPWX6M - 网易云课堂:[在线学习](http://study.163.com/course/courseLearn.htm?courseId=510006#/learn/video?lessonId=1051887&courseId=510006) ## 课时大纲 [00:00] 框架简介 [05:31] 最简实例 [14:13] 扩展示例 [23:54] 小...阅读全文
package main import ( //"bufio" "fmt" //"io" "io/ioutil" "os" "time" ) func main() { file1, err := os.OpenFile("hehehe.txt", os.O_RDWR|os.O_APPEND|os.O_CREATE, os.ModeType) if err != nil { panic(err) } defer file1.Close() // 往创建的文件中写入字符 //_, err = file1.WriteString("aaaaa\r\nbbbbb\r\ncccccc") //if err != nil { // panic(err) //} // A。 使用 bufio按行读取文件...阅读全文
简介 Golang 提供了 database/sql 包用于对 SQL 的数据库的访问, 在这个包中, 最重要的自然就是 sql.DB 了.对于 sql.DB, 我们需要强调的是, 它并不代表一个数据库连接, 它是一个已存在的数据库的抽象访问接口. sql.DB 为我们提供了两个重要的功能: sql.DB 通过数据库驱动为我们管理底层数据库连接的打开和关闭操作. sql.DB 为我们管理数据库连接池 有一点需要注意的是, 正因为 sql.DB 是以连接池的方式管理数据库连接, 我们每次进行数据库操作时, 都需要从连接池中取出一个连接, 当操作任务完成时, 我们需要将此连接返回到连接池中, 因此如果我们没有正确地将连接返回给连接池, 那么会造成 db.SQL 打开过多的数据库连接, 使数据库连...阅读全文
斜号社区·人物志正式启动。 昨天迎来第一位小伙伴的介绍 姓名:陈随易 性别:男 年龄:24 座右铭:何以解忧,唯有代码 编程初体验 (铺垫)只记得,当时在镇上最好的高中读着读着,就读到全校1300名去了(PS:年级全部学生1500人左右)。 为此,会算卦的老爸,给我掐指算了一卦,预测结果就是---在这个学校读下去,迟早会考不上大学。故,连夜撤离。 高二结束后,便从这个当地初中学子和家长挤破头都想进入的镇一中转到了当地人印象中都觉得"脏,乱,差"的镇职高---隆回职业中专,在此声明一下:隆回职业中专是一所好学校。我从普高高二转过来,因为之前没有接触过电脑,为了跟上节奏,所以仍然是从高一读起。进入一个班级之后,刚好是上机课,我被老师安排到一个座位,正式开始了我的编程初体验---这位同学,请问怎么...阅读全文
安装 我使用的是 https://github.com/go-redis/r... 这个 golang 客户端, 因此安装方式如下: go get gopkg.in/redis.v4 接着在代码中导入此包即可: import "gopkg.in/redis.v4" 基本操作 创建客户端 通过 redis.NewClient 函数即可创建一个 redis 客户端, 这个方法接收一个 redis.Options 对象参数, 通过这个参数, 我们可以配置 redis 相关的属性, 例如 redis 服务器地址, 数据库名, 数据库密码等.下面是一个连接的例子: // 创建 redis 客户端 func createClient() *redis.Client { client := redis.N...阅读全文
看《Go入门指南》 ,这里讲得比较基础,针对go 1.0版,以下是一些我自己觉得特别和不容易理解的地方的摘抄! 上次有说到go里不同类型之间操作必须显示转换,int和uint不固定,所以int 不是int32 int 和 uint 在 32 位操作系统上,它们均使用 32 位(4 个字节),在 64 位操作系统上,它们均使用 64 位(8 个字节)。 package main func main() { var a int var b int32 a = 15 b = a + a // 编译错误 b = b + 5 // 因为 5 是常量,所以可以通过编译 } 格式化说明符(应该不止这些) 在格式化字符串里,%d 用于格式化整数(%x 和 %X 用于格式化 16 进制表示的数字),%g 用于...阅读全文
package main import ( // "bufio" // "io" "bytes" "io/ioutil" "net/http" ) func main() { var buf = bytes.NewBufferString("{request: {action: \"GET_COMMON_CATEGORIES\",body:{shopId: \"1000001\",deviceId: \"123455\"}}}") // buf := bufio.NewReader(s) resp, err := http.Post("http://www.xxx.net.cn/shop/client", "tex...阅读全文
【编者的话】本次将分享的容器化ICT融合平台是一种面向未来ICT系统的新型云计算PaaS平台,它基于容器这一轻量级的虚拟化技术以及自动化的“微服务”管理架构,能够有效支撑应用快速上线和自动扩缩容,最大化IT基础设施资源利用率并降低总体拥有成本(TCO)。未来的网络正在向IT化、云化方向发展,容器与微服务技术,完美契合“网络即服务”、网络切片等发展理念,将有助于实现更加灵活、智能、高效和开放的5G新型网络。 2015年,NFV和容器无疑都是最热门的技术,被很多业内人士认为是未来的发展趋势;2016年,当NFV遇上容器,会碰撞出什么新的火花?当容器化的CT/IT业务在同一平台内融合部署,又会产生怎样新的体验?下面和大家分享一下,从2015年到2016年,我们做的容器化CT-IT融合方面的工作。I...阅读全文
go语言初识 package main import "fmt" func main() { fmt.Println("hello.golang") } go语言的变量 package main import "fmt" // 全局变量 var v1 = 100 var v2 = 200 var v3 = "name" // 改成一次性声明 var ( v4 = 300 v5 = 400 v6 = "jack" ) func main() { //一 变量使用 格式 : var 变量名 变量类型 // 如果声明后不赋值 则使用默认值 var i int fmt.Println("i=", i) // int 为 0 // 二 类型推导 根据值自行判断变量类型 var num = 10.10 ...阅读全文
go语言的client在redis官网上有很多l客户端,个人感觉redigo使用起来更人性化,重要的是源代码结构很清晰,重要的是支持管道、发布和订阅、连接池等等,所以我选择redigo作为尝试. 1.redigo的安装 终端运行: go get github.com/garyburd/redigo/redis ,安装完成后在$GOPATH/src下有相关的文件目录 这是正常的安装方式,不知道什么原因,这块我死活安装不成功. 没办法,从github网上直接下载redigo-master.zip工程包,将redis文件夹直接拷贝到$GOPATH/src/github.com/garyburd/redigo 2.测试redigo 虚拟机启动redis 服务,打开LiteIDE,新增一个go文件: ...阅读全文
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011957758/article/details/81150622 https://blog.csdn.net/u011957758/article/details/81150622 前言 接口在面向对象编程中是经常使用的招式,也是体现多态很重要的手段。 是的。Golang中也有接口这玩意儿。 本文将以通俗易懂的方式,说清楚Golang的接口。 10s后,以下知识点即将到达战场: 1.为什么需要接口? 2.接口是什么?如何定义? 3.接口实战初体验 4.如何测试是否已实现该接口? 5.空接口&类型断言 6.接口零值 7.一个类型实现多个接口 8.指针与值类型实现接口的区别 9.接口嵌套 正文...阅读全文
一、部署环境 mac 二、下载prometheus的mac版 进入下载页,操作系统选择darwin https://prometheus.io/download/ download.png 三、解压,进入目录运行 ./prometheus --config.file=prometheus.yml 四、浏览监控页面,查看对自身监控的一些信息 图表页: http://localhost:9090/graph metrics页面: http://localhost:9090/metrics 1)查看控制台日志输出 切换到Console尝试输入表达式,并点击execute,查看结果 prometheus_target_interval_length_seconds image.png count(p...阅读全文
什么是微服务? 一种软件体系结构模式,用于将大型单块应用程序分解为更小、可管理的独立服务,这些服务通过语言无关协议进行通信,每个服务的重点做好一件事 微服务的概念并不新鲜,这是对服务导向架构的重新构想,但其方法更整体地与unix进程和管道保持一致。 微服务架构的理念: 服务很小 - 细粒度作为单一的商业目的类似于unix哲学“做一件事,做得好” 组织文化应该包含部署和测试的自动化。这减轻了管理和运营的负担 文化和设计原则应该包含失败和错误,类似于反脆弱系统。 好处: 更容易扩展开发 - 团队围绕不同的业务需求进行组织并管理自己的服务。 更容易理解 - 微服务要小得多,通常是1000 LOC或更低。 更容易部署新版本的服务 - 可以独立部署,扩展和管理服务。 改进的容错和隔离 - 关注点的分离...阅读全文
为什么全力推荐Golang 转自: https://zhuanlan.zhihu.com/p/19959647 讨论哪个语言更好,就像在争论姚明和刘翔谁是更优秀的运动员。因为各自的坐标象限不同,常常会陷入一个难有结论怪圈。 所以本文绝不是在说Golang是比其他语言更好的语言。Golang只是最值得推荐的语言,尤其适合快速成长中的后端研发团队。 我推荐Golang的主要理由,并不是技术性的要素:不是他的高并发能力,编译的速度,跨平台能力,内存效率,也不是社区的活跃度等等。 事实上,创业之后,或者说成为一个技术管理者之后,技术优点就已经不再是我推荐任何一种语言的关键因素了。 因为,对于一个研发团队来说,项目成败的关键因素是:成本、质量和时间! 1、人力资源的成本 人力资源是研发团队最重要...阅读全文
最近在学习golang,看网上很多人都喜欢爬豆瓣,今天我就写了一个golang版的爬虫。对于python爬虫,我很了解,什么dom树,js异步,爬虫技术栈都是没问题的。 刚接触golang爬虫,今天写了一个很简单的爬虫,就是使用2个库,一个http、goquery 直接上代码 package main import ( "net/http" "fmt" "github.com/PuerkitoBio/goquery" "strconv" ) func GetMovie(url string) { fmt.Println(url) resp, err := http.Get(url) if err != nil { panic(err) } //bodyString, err := iouti...阅读全文
最近在看比特币源码,起初看主流的C++版本,但本人已多年未用C++,几乎相当于要重温一遍语法,另外C++环境编译要麻烦不少。于是转而从Golang版本入手,一来Golang语言相对容易入门,二来btcd版本的代码模块设计以及单元测试要比C++版本的源码更为清晰和完善。 对于Golang新手但又有其他语言基础的人,我推荐《Go语言实战》作为Golang入门书籍。该书并不像传统的教材按基础类型、循环这种套路顺序讲述,而是直接点出Golang和其他语言的不同,并用不同的小项目直接从代码开始讲解Golang的语法。对于有其他语言基础的人而言,通过代码能更容易理解一门新的语言。 同时,可以先看"如何用Go实现区块链"这个简化版的项目(https://liuchengxu.gitbooks.io/blo...阅读全文
快速了解 http://go-tour-zh.appspot.com/welcome/1 (可以需要爬墙) 下面记录下了解go的过程,特别记录下与你脑子里原有“观念”不同的地方: 1. 声名 初始化,类型在后面,不一样 var a, b int var a,b =1,2var c, python, java = true, false, "no!" a,b:=func fname(string,string) //非声明,必须在func使用 短声明变量 在函数中,`:=` 简洁赋值语句在明确类型的地方,可以用于替代 var 定义。 函数外的每个语法块都必须以关键字开始(`var`、`func`、等等),`:=` 结构不能使用在函数外。 2.函数返回多个值 func swap(x, y str...阅读全文
前言 最近在做这样一个需求,一个PC客户端应用拥有一个system权限下的服务,这样的一个服务在执行高权限方面确实很有优势,解决了很多的权限难题,但任何事情都有两面性,在拥有高权限的同时也丧失了一些需要用户权限执行的功能,比如要获取显示器信息的时候,因为system的session下面是没有用户界面的,所以就无法准确获取到,想要安装证书到当前用户下面的时候也是无能无力,等等随着这样的场景越来越多,对于一个用户权限下的进程需求就愈发的明显。又由于历史性的问题,核心的通信框架在这个agent中,所有的和远程server的交互都是agent执行的,所以我们需要的是一个用户权限下的进程,需要和agent进行通信,来执行agent的指令,关于这个通信的实现综合考虑了很多解决方案,后来在朋友的推荐下了解...阅读全文
云数据库管理与数据迁移认证可以帮助学员掌握云数据库的概念,如何在云端创建数据库、将自建数据库迁移至云数据库MySQL版、数据导入导出,以及云数据库运维的常用操作。 认证流程 1购买认证 2学习课程/在线实验 3在线考试 4领取电子证书 课程学习 01 课程介绍 通过学习,可以了解本课程的主要内容及学习目标。 免费试听 02 云数据库简介与使用场景 通过学习,可以了解云数据库是什么,相对传统数据库的优势,以及使用场景。 免费试听 03 云数据库MySQL版的基本概念 通过学习,可以掌握云数据库MySQL版的分类,以及实例、白名单、访问模式等基本概念。 免费试听 04 创建实例、数据库与账号 通过学习,可以掌握在云数据库MySQL版中创建实例、数据库与账号的步...阅读全文
初识Go语言,就被它深深地吸引住了,解放思想,关注真正该专注的东西,感觉看到了编程语言发展的未来! 接下来谈下安装方法吧 1、Homebrew 由于公司用的Mac,而所有用mac的开发人员,都离不开Homebrew这个软件包管理工具,它同样集成了Go语言,所以安装起来毫无压力 一句话搞定Go安装(过程可能有点慢,别着急) brew install go 接下来看下是否安装成功,输入 ‘go version‘ go version go version go1.4.2 darwin/amd64 好了,版本为1.4.2,安装成功,开始我们的Go语言之旅...阅读全文
送給初學者的一本書http://note.youdao.com/noteshare?id=afb1b262867f6a40c5599d0bb6dd712...阅读全文
1 花括号的使用: if expression {//正确使用方式 ... } 但下面这个写法就是错误的: if expression { ... } 2 Go 语言首创的错误处理规范: f, err := os.Open(filename) if err != nil { log.Println("Open file failed:", err) return } defer f.Close() ... // 操作已经打开的f文件 2.1 defer关键字 其一是 defer 关键字。 defer 语句的含义是不管程序是否出现异常,均在函数退出时自动执行相关代码 2.2 函数允许多个返回值 大多数函数的最后一个返回值会为 error 类型, error 类型只是一个系统内置的 interf...阅读全文
为什么全力推荐Golang 转自: https://zhuanlan.zhihu.com/p/19959647 讨论哪个语言更好,就像在争论姚明和刘翔谁是更优秀的运动员。因为各自的坐标象限不同,常常会陷入一个难有结论怪圈。 所以本文绝不是在说Golang是比其他语言更好的语言。Golang只是最值得推荐的语言,尤其适合快速成长中的后端研发团队。 我推荐Golang的主要理由,并不是技术性的要素:不是他的高并发能力,编译的速度,跨平台能力,内存效率,也不是社区的活跃度等等。 事实上,创业之后,或者说成为一个技术管理者之后,技术优点就已经不再是我推荐任何一种语言的关键因素了。 因为,对于一个研发团队来说,项目成败的关键因素是:成本、质量和时间! 1、人力资源的成本 人力资源是研发团队最重要...阅读全文
go语言的基本特性: 1 自动垃圾回收 2 新增的内置类型,map和数组切片。java中map需要导入系统包。数组切片似乎类似于java的ArrayList(暂不确定) 3 函数多返回值 func getInfo(p1,p2,p3){ return s1,s2,s3,s4; } 4 错误处理 5 匿名函数和闭包,函数也是类型,可以当做参数传递 6 类型和接口,一个类型可以动态绑定一个接口 7 并发编程 8 反...阅读全文
这一周终于抽空读完了许式伟先生的《go语言编程》。由于对go并发的支持很感兴趣,很早之前就想学一学go语言,这次由于6.824的课程作业的需要,终于认真的学习了一下。 就这几天的学习而言,我觉得有c/c++和python基础的同学应该很容易就上手go。下面我就从几个方面对比一下这几门语言,看看go究竟有哪些优秀的特点。 ####基本类型 c作为一门有着悠久历史的语言,缺乏语言层面上对一些现在常用的高级数据结构的支持,而go却拥有python中常用的列表和字典,不过在go中,他们分别叫做数组切片和字典类型,用法上有一些不同,却都提供了需要的功能,这一点上,go比起c要自己手写数据结构要方便很多。但是,相比于python这种纯面向对象的设计,go还是保留了c中最为强大的指针。但是考虑到下面要提到...阅读全文
初识go语言 http://gd-rus-public.cn-hangzhou.oss-pub.aliyun-inc.com/attachment/201612/29/20161229180443/go1.7.4.windows-amd64.msi http://gd-rus-public.cn-hangzhou.oss-pub.aliyun-inc.com/attachment/201612/29/20161229185544/go1.7.4.darwin-amd64.pkg http://gd-rus-public.cn-hangzhou.oss-pub.aliyun-inc.com/attachment/201612/29/20161229185714/go1.7.4.linux-am...阅读全文
好吧,所有的程序员们都已经习惯了,学习任何一门语言,我们都会以Hello World实例开始我们的学习,我也不例外。先来一个简单的例子 打开编辑器 (可以用记事本,我已经习惯 Notepad++了)输入以下内容 package main import "fmt" func main(){ fmt.Print("Hello World"); } 将其保存为 hello.go 接下来,我们就需要对其进行编译和执行。 编译方法: go build hello.go 编译后,我们会得到一个 hello.exe 然后,我们直接运行 hello 命令行就会输出 Hello World 了 详细解释: package
遇到的坑 README.md很糟心,有以下问题 代码错误(根本编译不过); 配置文件错误; 帮助文档和实际生成的代码并不致【毕竟刚开源,不完善算是正常现象】。 让第一个Demo跑起来 安装 环境信息 操作系统:CentOS Linux release 7.3.1611 (Core) golang版本:go1.9.2 linux/amd64 内核:Linux 3.10.0-514.21.1.el7.x86_64 gcc版本:gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16) 已正确配置GOPATH环境变量 TarsGo $ go get -u -v github.com/TarsCloud/TarsGo/tars github.com/TarsCloud/T...阅读全文
struct是变量的集合 interface是方法的集合 struct与interface都支持匿名字段, 换言之, 支持组合实现继承. golang的struct与C++的class一样, 只能声明变量, 不能初始化. golang的错误机制就是借且多值返回将错误作为结果返回. 所以关键API调用后, 备必检查err结果. golang的"."运算符很聪明, 会在变量及其指针间智能切换. 但定义method, 一般会将指针做为ReceiveType. 除非是明确不改调用对象的值, 即C++中所谓的const body...阅读全文
// code_017_struct_method_usage project main.go package main import ( "fmt" ) type MyInt int func (a MyInt) Add(b MyInt) MyInt { return a + b } func Add(a, b MyInt) MyInt { return a + b } type Person struct { name string sex byte age int } func (p Person) PrintInfo() { fmt.Println(p.name, p.age) } func (p *Person) SetInfoPointer() { (*p).name = "go...阅读全文
一、流程控制 // main package main import ( "fmt" ) func main() { x := 2 switch x { case 1: fmt.Print("beifeng 1") case 2: fallthrough case 3: fmt.Print("beifeng 2") default: fmt.Print("beifeng 3") } } 二、range遍历 // main.go package main import ( "fmt" ) func main() { x := "zhangsan" for _, v := range x { fmt.Printf("%c\n", v) } } 三、函数 左函数右返回值中间若干传入参数*传指针的值...阅读全文
作者介绍:Nick Cameron,PingCAP 研发工程师,Rust 语言核心成员。 感谢 Rust 语言中文社区伙伴们的翻译和审校: 翻译:尚卓燃 审校:吴聪、张汉东 过去几周,我一直在用 Go 语言编写程序。这是我首次在大型且重要的项目中使用 Go。在研究 Rust 的特性时,我也看了很多关于 Go 的内容,包括体验示例和编写玩具程序。但真正用它编程又是一种完全不同的体验。 我觉得把这次体验写下来应该会很有趣。在这篇文章中,我会尽量避免将 Go 与 Rust 进行过多的比较,不过,由于我是从 Rust 转向 Go,难免也会包含一些比较。应该事先声明的是,我更偏袒 Rust ,但会尽力做到客观。 总体印象 用 Go 编程的感觉很棒。库程序里有我想要的一切,总体实现较为完善。学习体验也十...阅读全文
Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常量 Go语言控制语句流程 章节 初识Go语言 1.初识Go语言 Go 语言简介 1.Go语言是一个开源的编程语言,它能很容易的构造简单、可靠、高效的软件 2.Go是从2007年末由Robert Griesemer,Rob Pike,Ken Thompson 主持开 发,后来还加入了Ian Lance Taylor,Russ Cox 等人,并最终于2009年11月开 源,在2012年发布了Go 1稳定版本。 Go 语言特点 1.运行效率高(编译成机器码,后续直接运行),开发高效(语法比较少、关 键字比较少,开发风格类似PHP),部署简单(编译好的程序直接运行就可以提供外部web服务...阅读全文
我最近决定在一个新项目中使用 GoLang 来实现一组增删改查的 API。在此之前,我较为熟悉 Java,Groovy,了解一些 Python。 我大部分的经验都是使用 Java 或者 Groovy 加上 Spring Boot。这让我感到有些无聊,所以为什么不来学点儿东西找找乐子呢? ## 要求 以下是一些要求。 * 设计并实现领域数据模型 * 实现增删改查 API * 在后端使用 Mongo 数据库 * 必须有 Swagger 文档 API 定义并且能方便的用多种语言生成客户端 * 运行在 Docker 容器中 * 能被部署在 Kubernetes 中 ## 非功能性要求 * 需要能很容易的调用其它语言的 API * 需要能够快速迭代(可能要突破常规) * 必须有单元测试 ## 加分项 ...阅读全文
// code_21_struct_interface_firsttime project main.go package main import ( "fmt" ) /* 1)接口interface是一个自定义类型,接口类型具体描述了一系列方法的集合。 2)接口类型是一种抽象的类型,它不会暴露出它代表的对象的内部值的结构和这个对象支持的基础操作的结合, 他们只会展示出他们自己的方法。 因此接口类型不能将其实例化。 3)Go通过接口实现了鸭子类型(duck-typing) */ type Humaner interface { SayHi() //1)一般以er结尾 //2)接口只有方法声明,没有实现,没有数据字段 //3)接口可以匿名嵌入其他接口,或嵌入到结构中 } type Studen...阅读全文
Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常量 Go语言控制语句流程 章节 初识Go语言 1.初识Go语言 Go 语言简介 1.Go语言是一个开源的编程语言,它能很容易的构造简单、可靠、高效的软件 2.Go是从2007年末由Robert Griesemer,Rob Pike,Ken Thompson 主持开 发,后来还加入了Ian Lance Taylor,Russ Cox 等人,并最终于2009年11月开 源,在2012年发布了Go 1稳定版本。 Go 语言特点 1.运行效率高(编译成机器码,后续直接运行),开发高效(语法比较少、关 键字比较少,开发风格类似PHP),部署简单(编译好的程序直接运行就可以提供外部web服务...阅读全文
作者介绍:Nick Cameron,PingCAP 研发工程师,Rust 语言核心成员。 感谢 Rust 语言中文社区伙伴们的翻译和审校: 翻译:尚卓燃 审校:吴聪、张汉东 过去几周,我一直在用 Go 语言编写程序。这是我首次在大型且重要的项目中使用 Go。在研究 Rust 的特性时,我也看了很多关于 Go 的内容,包括体验示例和编写玩具程序。但真正用它编程又是一种完全不同的体验。 我觉得把这次体验写下来应该会很有趣。在这篇文章中,我会尽量避免将 Go 与 Rust 进行过多的比较,不过,由于我是从 Rust 转向 Go,难免也会包含一些比较。应该事先声明的是,我更偏袒 Rust ,但会尽力做到客观。 总体印象 用 Go 编程的感觉很棒。库程序里有我想要的一切,总体实现较为完善。学习体验也十...阅读全文
## 本机使用k8s ####实验环境 linux 安装 kubectl ```shell sudo curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl \ && sudo mv kubectl /usr/local/bin/ ``` 安装 minikube ```shell sudo curl -Lo minikube https://storage.googleapis.com/minikube/rel...阅读全文
一、流程控制// mainpackage mainimport ("fmt")func main() { x :=2switchx {case1: fmt.Print("beifeng 1")case2: fallthroughcase3: fmt.Print("beifeng 2")default: fmt.Print("beifeng 3") }}二、range遍历// main.gopackagemainimport("fmt")funcmain(){ x :="zhangsan"for_, v := range x { fmt.Printf("%c\n", v) }}三、函数左函数右返回值中间若干传入参数*传指针的值,&指针的地址函数是一等公民,也可以作为值、类型3.1 函数传值与传...阅读全文
服务端代码 ```go package main import ( "fmt" "net/http" "net/rpc" ) // Money 钱 type Money int64 // Fen 分 type Fen int64 // Yuan 元 type Yuan float64 func rpcMoney() { money := new(Money) fmt.Println("money===", money) rpc.Register(money) rpc.HandleHTTP() err := http.ListenAndServe(":7890", nil) if err != nil { fmt.Println("rpc error:", err) } } // ToYuan...阅读全文
之前有知道dep,vendor,glide等go的包管理方案,但没怎么用起来,modules是官方推出,看势头在后面的版本中也会持续改进,值得尝试。 modules modules在go的1.11版本中加入,并在Go 1.13中对模块进行了重大改进和更改。 开启模块 1.13版本前请务必开启模块 export GO111MODULE=auto 初始化 在你的项目目录中执行: go mod init 13sai/game 会生成go.mod module 13sai/game go 1.12 然后你可以尽情编写你的项目代码,在你每次go get的时候,modules也会将你的安装的package加入go.mod module 13sai/game go 1.12 require github....阅读全文
go语言初识 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 学习go可以说是我的一时兴起,本人其实是一个android 程序员,在工作的闲暇之余比较喜欢研究一些杂七杂八的东西,自己也看过python、js、kotlin等等,一直想后面转岗后台,后面有一个前辈给我推荐了go让我可以来了解一下,然后抱着试试看的态度来了解了一下看过之后觉得语法非常的简洁,相似python引起了本人极大的兴趣,而且从语言程度上支持并发,让人使用起来非常的舒服,从此开启了自己的go学习之旅,后面就是本人的go学习笔记,记录下来一方面可以让自己巩固知识另一方面可以给像我一样初学者一点小小的帮助...阅读全文
// code_015_struct_firstTime project main.go package main import ( "fmt" ) type Student struct { id int name string sex byte age int addr string } func main() { /* 重要的事情说三遍:Go语言中没有封装、继承、多态等概念,但同样通过别的方式实现这些特性. 封装:通过方法实现;继承:通过匿名字段实现;多态:通过接口实现 */ //1)顺序初始化。 var s1 Student = Student{1, "ck_god", 0, 27, "sz"} s2 := Student{2, "god_girl", 1, 23, "sz"} //...阅读全文
JDK14也发布挺长时间了,从使用JDK8来,一直就没有动过升级JDK的想法,想想这种也不符合自己的风格,所以这次正好拿自己平时弄的一个项目试试手。 Test blocks 其实就是文本块,在之前用Golang、python的时候都使用过,这次总算可以在Java中也同样的使用了。 image.png 相对之前需要使用+拼接确实能省去一些输入量。 Pattern Matching for the instanceof Operator image.png 使用instanceof做match操作时,如果match上就可以把t传成match上的class,同时使用一个引用指向match上的对象。 Switch Expressions image.png 在switch中可以使用新的语法case ...阅读全文
前言最近在做这样一个需求,一个PC客户端应用拥有一个system权限下的服务,这样的一个服务在执行高权限方面确实很有优势,解决了很多的权限难题,但任何事情都有两面性,在拥有高权限的同时也丧失了一些需要用户权限执行的功能,比如要获取显示器信息的时候,因为system的session下面是没有用户界面的,所以就无法准确获取到,想要安装证书到当前用户下面的时候也是无能无力,等等随着这样的场景越来越多,对于一个用户权限下的进程需求就愈发的明显。又由于历史性的问题,核心的通信框架在这个agent中,所有的和远程server的交互都是agent执行的,所以我们需要的是一个用户权限下的进程,需要和agent进行通信,来执行agent的指令,关于这个通信的实现综合考虑了很多解决方案,后来在朋友的推荐下了解了...阅读全文
每天一点GO语言——Linux环境下安装Go语言环境以及编写Go语言程序初体验 一、安装Go语言环境 [root@localhost opt]# yum -y install wget git [root@localhost opt]# wget -c https://studygolang.com/dl/golang/go1.10.3.linux-amd64.tar.gz [root@localhost opt]# tar -zxvf go1.10.3.linux-amd64.tar.gz [root@localhost opt]# ls go go1.10.3.linux-amd64.tar.gz nginx-1.16.1 rh share_Ubuntu18.04 [root@local...阅读全文