Go语言中文网 为您找到相关结果 539

Golang net/http: HTTP/1.x transport connection broken: malformed HTTP status code "HTTP/1.1"

简述今日用golang开发微信小程序 请求wechat服务接口碰到一个问题记录一下 请求发生了错误 用golang 标准库请求发生了错误 胡乱猜想协议不对 服务器挂了???之后用了postman 工具模拟请求了一下如下 并没有网络错误 此时之前猜想的微信服务器出了问题排除了。最后我仔细看了下请求的日志终于发现了问题 参数之间有了空格 原因参数之间有空格所以才会报net/http: HTTP/1.x transport connection broken: malformed HTTP status code "HTTP/1.1"总结犯错误到是没什么,低级错误真是害死人,太耽误时间了!!...阅读全文

博文 2019-10-18 19:32:48 aside section ._1OhGeD

Bowery为什么放弃Node.js,转向Go?

【编者按】Go语言自从面世就受到了很多开发者的欢迎,越来越多的项目基于Go语言实现,例如非常著名的云计算项目Docker。而本文作者分享了其从Node.js转到Go语言后,整个开发平台的性能得到显著提升,并从中总结出Go的六大亮点。 以下为译文: Bowery是一个基于云技术的开发平台,强大的协同处理技术让即使分散各地的团队成员都能无缝地进行工作。在2014年进行的一次由Node.js转到Go的变更中,Bowery获得了不错的性能提升。那么Go有哪些亮点值得开发者关注的呢? 强大的跨平台编程能力 Bowery团队指出Go能很方便地在不同系统里进行程序编译,这是他们转入Go的重要原因之一。 作为开发平台,对Linux,Windows,OSX等常见操作系统提供支援是能否吸引开发者的基本要素。在G...阅读全文

博文 2015-02-04 01:00:00 mengyidan1988

Golang 程序中实现优雅关闭 HTTP SERVER

Golang 中实现一个 HTTP SERVER 异常的简单,利用标准库 net/http 的实现仅需数行代码即可,但是一个生产环境可用的 HTTP SERVER 还必须考虑更多的问题,其中如何实现优雅关闭 HTTP SERVER 是一个必须要处理的问题。这里所说的 优雅 即是指在 HTTP SERVER 里监听特定的信号,并在接收到信号时做出相应的处理。中文世界里也常用平滑 一词代替,说的都是同一个意思。 如果你对 Golang 中监听并处理信号不了解,建议先花三分钟浏览一下本专栏的另一篇关于信号处理的文章: Golang 程序中如何监听并处理信号? Talk is cheap. Show me the code. package main import ( "context" "fmt"...阅读全文

博文 2018-10-27 08:34:38 字节幂

Golang地表最狂(一)—— 标准库os/exec学习

伪粉表示stepping stone是真的燃 “来到舞台接受到的目光 怎么都不一样 面对亲戚朋友父母亲的所有抵抗 我努力独立成长 守护着自己坚强 但为了妈妈每日翘楚以盼长大 才对 他们剑拔弩张 我是双截棍柔中带刚 不用去少林武当 Not afraid 地表最狂 举世无双 撑这束追光 不怕艰险的 别人不知道的力量 不知道的力量 各霸一方 遗忘你铩羽而归的地方 你会前进 步履艰辛 但终究得要习惯投降 想当然尔 盗铃掩耳 是你最大的致命伤 我按兵不动 有恃无恐 沉默的酝酿 纯粹出于我礼貌的开场 神华内敛才能以柔克刚 试探性衡量 暗箭难防 自尊受伤 成王败退 没什么两样 我运筹帷幄 仰望夕阳 你放弃抵抗 低头离场 但不用放在心上 是因为我们是地表最狂”---听到mdr-1abt燃烧的声音,真的进入一...阅读全文

博文 2018-09-10 22:34:44 地表最狂蓝胖子

关于go语言des加解密算法

最近的项目需要,跻身go语言的行列,真不知道是福还是祸啊,嗨,感慨一下! 今天弄了一个des加解密的算法,主要也是用到了golang的标准库,和网上大牛的文档,在这里先感谢一下,并附上原链接地址: http://blog.studygolang.com/2013/01/go%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86%E4%B9%8Bdes/ 好,不废话,直接上代码: func DesEncrypt(origData, key []byte) ([]byte, error) { block, err := des.NewCipher(key) if err != nil { return nil, err } origData = PKCS5Padding(ori...阅读全文

博文 2015-06-17 23:00:45 mi_tiger

Go 标准库介绍二: time

介绍Go 标准库 time 常用导出函数,结构体及其方法。 import "time" 12 import "time" time包提供显示和计算时间用的函数。 1. 时间处理类型 Go 中时间处理依赖的数据类型: time.Time, time.Month, time.Weekday, time.Duration, time.Location。 1.1 time.Time 时间点 time.Time 代表一个纳秒精度的时间点. /usr/local/go/src/time/time.go 定义如下: type Time struct { sec int64 // 从1年1月1日 00:00:00 UTC 至今过去的秒数 nsec int32 // 最近一秒到下一秒过去的纳秒数 loc *L...阅读全文

博文 2017-03-10 05:53:43 xugang

Go,5周年

Go,5周年 十一 12 bigwhite技术志 cloudflare, DigitalOcean, dotGo, FOSDEM, GC, github, Go, Go1, go1.4, Go1.5, GoCon, GoDevRoom, Golang, Google, Gopher, GopherCon, Gophers, GothamGo, Heroku, RobPike, 垃圾收集器, 谷歌 No Comments 2014年11月10日(美国当地时间),Golang的官方博客 放出了Andrew Gerrand的一篇博文《Half a decade with Go》来纪念Go语言发布五周年。文章按时间顺序简要描述了Golang这五年来发展的 点点滴滴,并让全世界Gopher看到了Go可...阅读全文

博文 2014-11-12 19:13:21 bigwhite

Go 语言的下一步 : Russ Cox 谈 Go 2 规划

7 月 13 日,Russ Cox 在 GopherCon 上分享了《The Future of Go》,回顾了 Go 语言的发展历史,展望了 Go 2。Rob Pike、Robert Griesemer 和 Ken Thompson 就一门新的编程语言讨论了一段时间,在 2007 年 9 月 25 日,Rob 建议将其命名为 Go。之后,Russ Cox 和 Lance Taylor 也加入了 Go 语言的设计团队。他们 5 人一起开发了两款编译器和一个标准库,为 2009 年 11 月 10 日 Go 语言以开源方式发布打下了基础。接下来的两年,在开源社区的帮助之下,Go 语言引入了很多大大小小的变化。几乎每周都有一些不兼容的变化,用 Go 开发的程序也需要不断更新。这妨碍了 Go 语言...阅读全文

博文 2017-07-14 07:54:37 开发资讯

Go语言中异步拆分io.Reader

文地址 在Go语言中处理任何stream数据时,我已经深陷io.Reader和io.Writer的灵活性中不能自拔。同时我在有一点上又或多或少的受了些折磨,挑战我的reader interface在你看来可能会觉得很简单:那就是怎么样拆分读操作。 我甚至不知道使用“拆分(split)”这个词是否正确,我就是想通过io.Reader多次读取接收到的东西,有时候可能还需要并行操作。但是由于readers不一定会暴露Seek方法重置读取位置,我需要一个方法来复制它。或者可以算是clone或fork么? 现状 假设你有一个web服务允许用户上传一个文件。这个服务将会把文件存储在云端。但是在存储前需要对这个文件进行一些简单的处理。对于接下来的所有请求,你都不得不使用io.Reader去处理。 解决方案...阅读全文

博文 2016-10-10 13:00:03 xingwangc2014

关于go语言

腾讯soso 文/王益 最近几个星期里,我的工余时间基本全部放在学习和使用Go语言上了。这只螃蟹很好吃;向大家推荐。 对Go语言的总体感觉:- Go语言的语法简单(语言的复杂程度小于C++和Java,关键词数量相当于C), - Go程序的编译速度非常快。我尝试了两种Go编译器: 1. Rob Pike的GC编译器编译起来瞬间完成; 2. Ian Taylor的gccgo编译速度虽然不如GC,但是也快过g++,而且代码生成优化做的更好) - 生成的代码的执行效率和g++的结果的可比。 这个链接(http://shootout.alioth.debian.org/u64q/benchmark.phptest=all⟨=go&lang2=gpp)比较了GC编译的Go程序和g++编译的C++程序的。...阅读全文

博文 2014-10-04 19:25:59 soso_blog

GO优缺点

GO优缺点 1.1 不允许左花括号另起一行 1.2 编译器莫名其妙地给行尾加上分号 1.3 极度强调编译速度,不惜放弃本应提供的功能 1.4 错误处理机制太原始 1.5 垃圾回收器(GC)不完善、有重大缺陷 1.6 禁止未使用变量和多余import 1.7 创建对象的方式太多令人纠结 1.8 对象没有构造函数和析构函数 1.9 defer语句的语义设定不甚合理 1.10 许多语言内置设施不支持用户定义的类型 1.11 没有泛型支持,常见数据类型接口丑陋 1.12 实现接口不需要明确声明 1.13 省掉小括号却省不掉花括号 1.14 编译生成的可执行文件尺寸非常大 1.15 不支持动态加载类库 Go语言的优点: 并发/网络/性能/工具(fmt/pprof/test)/标准库(http/json...阅读全文

博文 2016-11-26 08:00:04 yueguanyun

binary array search的几种写法(go)

03 Jun 2013 binary array search的几种写法(go) 儿童节那天,对比了python内置的dict和binary array search查找的性能,dict大幅领先,有些出乎意料: dict虽然是O(1),binary search是O(log n)。当n为1M时,log n也仅有20,并且直观上log n前面的常数不大,理论上应该和O(1)差别不是很大 怀疑到python语言,binary array search是由手工python实现,而dict是C实现。python语言比C慢很多 所以,6月2日,用go语言来对比一下,也熟悉一下go语言。 binary search有几种写法: recusive: 递归 3-branch: 迭代,每次迭代进行2次判断 =...阅读全文

博文 2014-11-05 19:13:29 沈锋

golang标准库之path

path实现了对斜杠分隔("/")的路径的实用操作函数。 package main import ( "fmt" "path" ) func main() { // func IsAbs(path string) bool // IsAbs返回路径是否是一个绝对路径 fmt.Println(path.IsAbs("/dev/null")) // true // func Split(path string) (dir, file string) // Split函数将路径从最后一个斜杠后面位置分隔为两个部分(dir和file)并返回。如果路径中没有斜杠,函数返回值dir会设为空字符串 fmt.Println(path.Split("http://static\\myfile.css")) /...阅读全文

博文 2019-10-02 09:32:46 aside section ._1OhGeD

interface作为struct field,谈谈golang结构体中的匿名接口

golang中通过组合(composite)实现类似继承(extends)和重写(override)的功能,大家可能平时用的比较多的是struct中匿名struct的写法,有没有见过struct中匿名接口(anonymous interface)的写法呢? Interface这个接口直接作为struct中的一个匿名字段,在标准库sort包中就有这种写法: type Interface interface { Len() int Less(i, j int) bool Swap(i, j int) } type reverse struct { Interface } 下面我们来看一个完整的例子,以下代码是从sort包提取出来的: package main import ( "fmt" ) t...阅读全文

博文 2019-04-14 22:34:40 wind5o

GO起源、特性

自https://juejin.im/entry/5705f83a8ac247004c04900c Go的核心贡献者Go主要有静态语言、天生并发、内置GC、安全性高、语法简单、交叉编译和编译快速这几个方面的特性。这些特性决定了Go的三个高富帅特性:运行快、开发快和部署快,而这些特性都是针对Google遇到的一些痛点来设计的。在说痛点之前,我们先来了解一下Go的作者和主要核心开发者们,图1是Go的三个作者从左到右分别是:Robert Griesemer, Rob Pike 和 Ken Thompson。Robert在开发Go之前是Google V8、Chubby和HotSpot JVM的主要贡献者;Rob主要是Unix、UTF-8、plan9的作者;Ken主要是B语言、C语言的作者、Unix之...阅读全文

博文 2019-04-28 10:31:04 sunweiliang

深度 | 从Go高性能日志库zap看如何实现高性能Go组件

导语:zap是uber开源的Go高性能日志库。本文作者深入分析了zap的架构设计和具体实现,揭示了zap高效的原因。并且对如何构建高性能Go语言库给出自己的建议。作者简介:李子昂,美图公司架构平台系统研发工程师,从事长连接服务和分布式存储组件的研发和支持。摘要日志在整个工程实践中的重要性不言而喻,在选择日志组件的时候也有多方面的考量。详细、正确和及时的反馈是必不可少的,但是整个性能表现是否也是必要考虑的点呢?美图技术团队在长期的实践中发现有的日志组件对于计算资源的消耗十分巨大,这将导致整个服务成本的居高不下。此文从设计原理深度分析了 zap 的设计与实现上的权衡,也希望整个的选择、考量的过程能给其他的技术团队在开发高性能的 Go 组件时带来一定的借鉴意义。前言日志作为整个代码行为的记录,是程...阅读全文

博文 2018-08-15 09:35:36 高可用架构

golang 项目实战简明指南

**[原文地址](http://litang.me/post/golang-project-guide/)** ### 开发环境搭建 golang 的开发环境搭建比较简单,由于是编译型语言,写好 golang 源码后,只需要执行 `go build` 就能将源码编译成对应平台(本文中默认为 linux)上的可执行程序。本文不再赘述如何搭建 golang 开发环境,只说明下需要注意的地方。 从官网下载对应平台的 golang 安装包中包括 golang 的编译器、一些工具程序和标准库源码。早期的 golang 版本中,需要设置 `GOROOT` 和 `GOPATH` 两个环境变量。 从 1.8 版开始,`GOPATH` 不再需要显示设置。如果没有显示设置,则 `GOPATH` 的默认值为 `$...阅读全文

博文 2018-09-29 19:07:19 darlingtangli

golang讲解(go语言)标准库分析之io.ioutil

http://www.widuu.com/archives/12/906.html Golang标准库 今天我们讲解的是golang标准库里边的io/ioutil包–也就是package io/ioutil 1.ioutil.ReadDir(dirname string)这个函数的原型是这样的 func ReadDir(dirname string) ([]os.FileInfo, error) 不难看出输入的是dirname类型是string类型的 譬如”d:/go”,然会是一个FileInfo的切片,其中FileInfo的结构是这样的 1 type FileInfo interface { 2 Name() string // 文件的名称 3 Size() int64 // 唱过文件的大...阅读全文

博文 2015-10-16 22:00:03 lwljava

Go 模板中的 时间 格式化

1. 概念 如果有人问你说现在几点? 你看了看表回答他说晚上8点了. 这样回答看上去没有什么问题,但是如果问你的这个人在欧洲的话那么你的回答就会让他很疑惑,因为他那里还太阳当空呢. 这里就有产生了一个如何定义时间的问题. 因为在地球环绕太阳旋转的24个小时中,世界各地日出日落的时间是不一样的.所以我们才有划分时区(timezone) 的必要,也就是把全球划分成24个不同的时区. 所以我们可以把时间的定义理解为一个时间的值加上所在地的时区(注意这个所在地可以精确到城市) 地理课上我们都学过格林威治时间(GMT), 它也就是0时区时间. 但是我们在计算机中经常看到的是UTC. 它是Coordinated Universal Time的简写. 虽然可以认为UTC和GMT的值相等(误差相当之小),但...阅读全文

博文 2018-10-16 00:34:39 乐剑天

Golang 语言安装

Ubuntu: 从源代码编译安装 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的 apt-get install bison gawk gcc libc6-dev make 安装mercurial工具,目的使用hg命令来提取golang的源代码 apt-get install mercurial 代取提取,如果您的网速比较慢的话,此步要多花点时间 cd /usr/local hg clone -r release https://go.googlecode.com/hg/ go 编译golang cd go/src ./all.bash all.bash/all.bat — 会执行make脚本和run脚本make.bash/make.bat — 安装...阅读全文

博文 2014-10-17 03:00:00 saintaxl

阿里云高级技术专家带你揭秘短视频解决方案

摘要: 最近很多人咨询阿里云短视频SDK的产品功能和如何接入,今天我们对负责短视频SDK的技术同学进行访谈,听他介绍下产品和技术能力。 采访对象:王海华,高级技术专家,负责阿里视频云端相关的技术研发。 Q:你认为短视频是什么? 我不知道大家对短视频是否有了解?很多人提到短视频会说微信小视频、美拍、秒拍,其实他们是短视频的代表。从更加全面的几个角度来讲,短视频应该是从以下几个纬度来说:适合在移动终端上传播,适合用户在碎片化时间去观看和转发,时间在几秒钟到几分钟之间的一种内容形式。 有几个数据,短视频用户规模1.53亿,2017年会增加到2.5个亿,每天看的时间30分钟之长。 市场上看到的很多直播和社交平台,都加入了短视频功能,可以看出短视频已经变成了很多APP的标配。 ...阅读全文

golang讲解(go语言)标准库分析之io(1)

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 今天我们开新的标准库io也是继续上一次我们没有讲完的标准库,上一次我们只说了io/ioutil这次我们继续开讲整个io库 (1)func Copy(dst Writer, src Reader) (written int64, err error)这个函数是从一个文件读取拷贝到另外一个文件,一直拷贝到读取文件的EOF,所以不会返回io.EOF错误,参数是写入目标器和读取目标器,返回int64的拷贝字节数和err信息 [php] import ( "fmt" "io" "os" ) func main() { r, _ := os.Open("test.txt") w, _ := os.Crea...阅读全文

博文 2017-02-09 18:39:38 widuu

GO

2007年,受够了C++煎熬的Google首席软件工程师Rob Pike纠集Robert Griesemer和Ken Thompson两位牛人,决定创造一种新语言来取代C++, 这就是Golang。出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发,不得不说,Golang早已深入人心。而对于一个没有历史负担的新项目,Golang或许就是个不二的选择。 被称为GO语言之父的Rob Pike说,你是否同意GO语言,取决于你是认可少就是多,还是少就是少(Less is more or less is less)。Rob Pike以一种非常朴素的方式,概括了GO...阅读全文

博文 2019-06-28 23:33:11 马哥小师哥

深入学习golang(5)—接口

接口 概述 如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键。在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。Go语言中的接口是一些方法的集合(method set),它指定了对象的行为:如果它(任何数据类型)可以做这些事情,那么它就可以在这里使用。 type Reader interface { Read(p []byte) (n int, err error) } type Writer interface { Write(p []byte) (n int, err error) } type Closer interface { Close() error } type Seeker in...阅读全文

博文 2014-10-06 09:42:32 hustcat

golang url请求中文字符转码

前段时间工作需求需要调用第三方的API,在GET请求中有用户帐号之类的参数,用户帐号有不可预测的中文字符,在url中如果不对中文字符转码的话,在发送请求后http底层一系列的处理可能会出现编码问题,导致第三方API服务器无法解析正确的参数。 在golang中,已经有标准库net/url对url中文字符的处理。 QueryEscape函数对s进行转码使之可以安全的用在URL查询里。 // net/url func QueryEscape(s string) string { return escape(s, encodeQueryComponent) } QueryUnescape函数用于将QueryEscape转码的字符串还原。它会把%AB改为字节0xAB,将'+'改为' '。如果有某个%后...阅读全文

博文 2019-10-25 15:32:47 aside section._1OhGeD

ubuntu GO语言环境搭建

1、c语言工具Go 的工具链采用 C 语言编写,构建需要安装以下开发工具: GCC, C 语言标准库, Bison, make, awk等. 对于 Ubuntu/Debian 系统,运行安装命令: sudo apt-get install bison ed gawk gcc libc6-dev make 2、安装 Mercurial 在进行后面的操作之前需要安装 Mercurial 版本管理系统(可以输出 hg 名字检 测是否安装)。安装输入以下命令: sudo easy_install mercurial 对于 Ubuntu/Debian 系统,easy_install 命令可以用apt-get install python-setuptools python-dev build-esse...阅读全文

博文 2014-11-03 16:00:13 strangerLove

Go 语言标准库中最常用的标识符是什么?

这篇文章是来自最新 [justforfunc](http://justforfunc.com/) 中同标题的一段。这个程序的[代码](https://github.com/campoy/justforfunc/blob/master/24-go-scanner/main.go)可以在 [justforfunc 仓库](https://github.com/campoy/justforfunc) 中找到。 ### 问题陈述 想象一下,对于下面的代码段,你如何将其中所有的标识符都提取出来。 ```go package main import "fmt" func main() { fmt.Println("Hello, world") } ``` 我们期望可以得到一个包含 **main**, *...阅读全文

博文 2018-02-01 14:30:47 kaneg

Golang Tools 介绍

Golang Tools 介绍 go 安装之后内置了很多工具以帮助开发 gofmt Usage:gofmt main.go :格式化 main.go 文件的源码输出到终端gofmt -w main.go :格式化 main.go 文件并回写到原文件gofmt -w Tasks :格式化 Tasks 目录下的所有文件并且将格式化内容保存到对应源文件 当提交源代码的时候,强烈推荐使用 gofmt 去格式化源码 godoc godoc 会从$GOROOT目录下的标准库(library)和$GOPATH/src 目录下的所有项目中的代码注释中生成文档它有两个接口 webUsage: godoc --http=:8080 net/http 包的文档可以通过 localhos...阅读全文

博文 2017-12-05 09:04:50 luxixing

标准库— 操作源码之收集go包信息:go/build

标准库— 操作源码之收集go包信息:go/build 在golang标准库中,有那么一类包,它们用于处理go项目目录结构、源码、语法、基本操作等。一般程序中可能用不到这些包,但在go工具链源码中用到了,之所以学习这些标准库,是为了更好的看go工具链的源码。首先我们来看收集go包信息的库:go/build 一、build包概述 该包文档中首先介绍了Go Path。如果对该部分还不清楚,可以看下文档的说明;或者官方其他文档;或者看 Go项目的目录结构。 如果你看过go源码,应该见到过类似这样的包注释:+build ignore。这是编译约束条件(Build Constraints),可以理解为条件编译。关于这部分的更多内容,稍后详细介绍。 二、类型和函数 1、ToolDir变量 var Tool...阅读全文

博文 2015-06-17 20:15:55 postamble

why go

取自:http://www.weixinyidu.com/n_3502636 Go的核心贡献者 Go主要有静态语言、天生并发、内置GC、安全性高、语法简单、交叉编译和编译快速这几个方面的特性。这些特性决定了Go的三个高富帅特性:运行快、开发快和部署快,而这些特性都是针对Google遇到的一些痛点来设计的。 图1 在说痛点之前,我们先来了解一下Go的作者和主要核心开发者们,图1是Go的三个作者从左到右分别是:Robert Griesemer, Rob Pike 和 Ken Thompson。Robert在开发Go之前是Google V8、Chubby和HotSpot JVM的主要贡献者;Rob主要是Unix、UTF-8、plan9的作者;Ken主要是B语言、C语言的作者、Unix之父。 图2 ...阅读全文

博文 2016-09-13 02:00:00 HouZhiHouJueBlogs

我为什么放弃Go语言

有好几次,当我想起来的时候,总是会问自己:我为什么要放弃Go语言?这个决定是正确的吗?是明智和理性的吗?其实我一直在认真思考这个问题。 开门见山地说,我当初放弃Go语言(golang),就是因为两个“不爽”:第一,对Go语言本身不爽;第二,对Go语言社区里的某些人不爽。毫无疑问,这是非常主观的结论。但是我有足够详实的客观的论据,支撑这个看似主观的结论。 第0节:我的Go语言经历 先说说我的经历吧,以避免被无缘无故地当作Go语言的低级黑。 2009年底,Go语言(golang)第一个公开版本发布,笼罩着“Google公司制造”的光环,吸引了许多慕名而来的尝鲜者,我(Liigo)也身居其中,笼统的看了一些Go语言的资料,学习了基础的教程,因对其语法中的分号和花括号不满,很快就遗忘掉了,没拿它当一...阅读全文

博文 2014-10-09 18:00:02 kkgbn

golang 初始化顺序

1.import机制● main -> import pkg1 -> const -> var ... -> init() -> main()● pkg1 -> import pkg2 -> const -> ...● pkg2 -> ... import( "time" //普通写法 . "fmt" //使用此包内的成员时不带fmt前缀 j "encoding/json" //json包重命名 // 引入包顺序遵循 标准库,项目包,第三方包 ) 不要使用相对路径引入包(以GOPATH/src作为根目录) import 后面跟着包路径。go语言的惯例只是一个特例,即恰好目录名与包名一致。import中的foo只是一个文件系统的路径。而下面foo.Foo()中的foo则是包名。而这个包是在sr...阅读全文

博文 2018-10-13 10:34:43 夏至悲歌

学习Golang语言(3):类型--布尔型和数值类型

# 学习Golang语言(3):类型--布尔型和数值类型 --- 跟着“码术”一起学习Golang语言。今天讲解Golang语言的基本类型,介绍布尔类型和数值类型。 **布尔类型** 布尔类型是 bool。Go语言提供了内置的布尔值true和flase。Go语言支持标准的逻辑和比较操作。这些操作的结果都是布尔值。 布尔值和表达式可以用于if语句中,for语句的条件中以及switch语句的case的判断中。 逻辑操作符: !:逻辑非操作符; ||:逻辑或操作符; &&:逻辑与操作符; 比较操作符。 <,>, ==,!=, <=, >= **数值类型** ---------- ...阅读全文

golang simplejson的使用笔记

golang simplejson使用笔记 介绍: golang标准库的json需要预先定义好结构体,然后才能将json字符串转化为golang的结构体;simplejson这个开源的库可以在不知道json字符串具体结构的情况下进行编码和解码 使用: import ( simplejson "github.com/bitly/go-simplejson" ) func case1() { //初始化*simpleJson.Json对象 sj, err := simplejson.NewJson([]byte(jsonStr)) var v *simpleJson.Json //获取字段,如果有多级,可以层层嵌套获取 v = sj.Get(字段名1).Get(字段名2) //将v的值转化为具体...阅读全文

博文 2020-01-03 12:32:39 byte

理解Golang包导入

理解Golang包导入 三 09 bigwhite技术志 6g, 6l, fmt, Go, Golang, GOPATH, GOROOT, import, Java, nsq, Package, Python, 包, 标准库, 编译器, 链接器 1 Comment Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。 Golang中包的定义和使用看起来十分简单: 通过package关键字定义包: package xxx 使用import关键字,导入要使用的标准库包或第三方依赖包。 import "a/b/c" import "f...阅读全文

博文 2015-03-12 10:12:43 bigwhite

使用golang log库包实现日志文件输出

这次聊聊golang日志模块的详细用法。golang的日志输出一般用的是标准库log库包。 话说Golang的log实现的功能跟别语言的日志没啥区别。 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。 http://xiaorui.cc/?p=2972 下面是golang log库包的几个重要函数说明. Python xiaorui.cc //定义logger, 传入参数 文件,前缀字符串,flag标记 func New(out io.Writer, prefix string, flag int) *Logger //设置flag格式 func SetFlags(flag int) //配置log的输出格式 func SetPrefix(prefix stri...阅读全文

博文 2017-04-04 19:30:43 rfyiamcool

Go Reflect

最近在看一些go语言标准库以及第三方库的源码时,发现go的reflect被大量使用,虽然反射的机制大多数语言都支持,但好像都没有go一样这么依赖反射的特性。个人觉得,reflect使用如此频繁的一个重要原因离不开go的另一个特性,空接口interface{},reflect配合空接口,让原本是静态类型的go具备了很多动态类型语言的特征。 另外,虽然反射大大增加了go语言的灵活性,但要完全掌握它的原理和使用也还是有一点难度的。 go的reflect库有两个重要的类型: reflect.Type reflect.Value Type,Value分别对应对象的类型和值数据 还有两个重要的函数: reflect.TypeOf(i interface{}) Type reflect.TypeOf()返...阅读全文

博文 2016-02-05 05:00:00 scut1135

『调查』大家希望 Go 标准库文档有哪些额外的东西?

什么?我最希望的是最新的中文版本…… 别急,我们 GCTT 正在进行翻译,有兴趣的可以参与进来 https://github.com/studygolang/gctt-godoc 这个帖子,是想征集大家对标准库文档有没有些额外的需求,比如:看了文档,还是不知道怎么用,能不能提供例子(比如,PHP 文档就很好,很多评论、例子) 你希望文档能有哪些额外的东西呢?欢迎回复说出你的需求...阅读全文

Golang学习 - 学习资源列表

本文转自Golove博客:http://www.cnblogs.com/golove/p/3274321.html Golang 学习资源: 《学习 Go 语言》 - 书籍 http://www.mikespook.com/learning-go/ 《Go 入门指南》 - 书籍 https://github.com/Unknwon/the-way-to-go_ZH_CN 《Go Web 编程》 - 书籍 https://github.com/astaxie/build-web-application-with-golang/ 《Go 标准库示例》 https://github.com/astaxie/gopkg 《Go 语言标准库》 - 书籍 https://github.com/polar...阅读全文

博文 2015-01-06 16:00:13 chenbaoke

golang之cgo---调用C/C++动态库函数

之前说过golang调用C代码的方式可以通过cgo或者是swig,而cgo是不能使用C++相关的东西的,比如标准库或者C++的面向对象特性。怎么办,将c++的功能函数封装成C接口,然后编译成动态库,或者是功能较为简单的可以直接嵌入到go源文件中。   cgo的使用是在linux平台上,在windows平台上可以配置交叉编译器。 动态库头文件:myfuns.h #pragma once #include #include #include #include void fun1(); void fun2(int a); int func3(void **b); // others 动态库名:myfuns.so...阅读全文

博文 2016-09-03 07:00:06 FreeApe

异相双生 —对“天才病”的亲历感受(一)

双相情感障碍,这是我今天夏天才从医生那里听到的名词。 在这段时间里,我从网上查阅了不少资料。双相情感障碍,又名躁郁症,biapolar disorder ,情绪在高峰和低谷这两极之间像钟摆一样摇摆,波动不定,同抑郁一样,是一种心境/情感障碍…… 好了,其他医学部分的内容请自行 Google,作为双相 II 型患者的我对于双相的看法、感受: 首先,我们要明确双相分为 I 型和 II 型。如果我们简单以“激越”、“平静”、“抑郁”的概念曲线来形容人的情绪变化。那么 I 型比较典型的(但不是绝对)就可以表示为:“平静”-“激越”-“平静”,II 型比较典型(但也不是绝对)就是“平静”-“抑郁”-“平静”。更简洁地说就是, I 型更偏“激越”,II 型更偏抑郁。我自己就是 II 型。 至于这种疾病的...阅读全文

博文 2019-10-17 16:33:03 aside section ._1OhGeD

适合新手看的资源下载小程序

大部分新手(比如我)看完golang圣经之后不知道该做些什么好,那不如就来做一个资源下载小程序吧。这里用一个视频网站作为示范,来编写一个小小的资源下载小程序 因为是个小程序,所以所有函数和方法都放在一个 main 包里。 首先导入我有用到的标准库。 ``` package main import ( "bufio" "fmt" "io" "io/ioutil" "net/http" "os" "path" "regexp" "strings" "sync" "time" ) ``` 一些全局变量 ``` var index_url string = "https://www.example.com"//这里就用example来替换掉它的域名,免得被人找麻烦 /* ptnIndexItem是一...阅读全文

博文 2017-11-18 13:48:47 golang_291

golang 实现斐波那契堆

二叉堆提供了o(lgn) 时间的插入, 删除最小,降级等操作,o(n) 时间的合并操作; 斐波那契堆提供了更优操作时间界限:o(1) 插入, o(lgn) 删除最小, o(lgn) 删除, o(1)合并。 根据算法导论上说,斐波那契堆在删除最小或删除操作被执行次数相比其他操作少得多时,尤为适用。一些图的算法中(计算最小生成树,单源最短路径)作为基本构建块(作为优先队用)。 考虑到斐波那契堆实现的复杂,可能二叉堆在实践上更具可用性。就像rob pike 在 里说: 3. 花哨的算法在 n 很小时通常很慢,而 n 通常很小。花哨算法的常数复杂度很大。除非你确定 n 总是很大,否则不要用花哨算法。 4. 花哨的算法比简单算法更容易出bug,更难...阅读全文

博文 2015-03-18 17:00:01 yujian0231