Centos 搭建golang环境,vim高亮go关键字设置

Centos 搭建golang环境,vim高亮go关键字设置 1:下载 https://golang.org/dl/ 下载 go1.4.1.linux-amd64.tar.gz ArchiveLinux64-bit 2:切换sudo权限解压到/usr/local/目录下 tar xzvf go1.3.linux-amd64.tar.gz -C /usr/local/ 3:返回普通用户权限 4:设置PATH vi ~/.bash_profile export GOROOT=/usr/local/g...阅读全文

CSDN博客 2015-01-19 18:32 ppppppppp2009

intellij idea13.1.4b配置go开发环境

首先下载intellijdea13.1.4b(建议大家使用14,因为13.1.14a版本有bug,容易下错) http://pan.baidu.com/s/1i3kns5B 再去下载go1.2 http://www.golangtc.com/download 最后下载intellijIDEA的go插件:http://plugins.jetbrains.com/plugin/5047?pr=idea 这个插件最新支持到go1.2版本。所以上面要求大家下载1.2版本的go。 安装插件过程如下:进入s...阅读全文

CSDN博客 2015-01-04 22:26 u010499721

TODO:Golang指针使用注意事项

TODO:Golang指针使用注意事项先来看简单的例子1:输出:11例子2:输出:13例子1是使用值传递,Add方法不会做任何改变;例子2是使用指针传递,会改变地址,从而改变地址。在看例子3:输出:map[a:aa b:bb]map[b:world a:hello]发现什么了,TestMap前面没有加*,没有用指针,怎么也会改变值呢?因为map提供键值功能,用起来像指针引用的类型。类似这种功能的类型还有,数组切片,channel,interface。Go语言包这种指针引用类型,有兴趣可以去阅读一...阅读全文

51CTO博客 2016-12-08 09:41:14 OneTODO

学习Golang语言(5)

1、for Go 只有一种循环结构——`for` 循环。 基本的 for 循环除了没有了 `( )` 之外(甚至强制不能使用它们),看起来跟 C 或者 Java 中做的一样,而 `{ }` 是必须的。 2、for(续) 跟 C 或者 Java 中一样,可以让前置、后置语句为空。 3、for 是 Go 的 “while” 基于此可以省略分号:C 的 while 在 Go 中叫做 `for`。 4、死循环 如果省略了循环条件,循环就不会结束,因此可以用更简洁地形式表达死循环。 5、if if 语句除...阅读全文

CSDN博客 2014-12-02 15:36 lz0426001

Go语言中Interface的理念

Go语言中Interface淡化了面向对象中接口应具有的象征意义,接口在Go语言中仅仅只是“表现形式”上相同的一类事物的抽象概念。在Go语言中只要是具有相同“表现形式”的“类型”都具有相同的Interface,而不需要考虑这个Interface在具体的使用中应具有的实际意义。这样的话,就把Interface的成本交给使用者了,而不是交给设计者。 设计者只负责设计method,也就是Interface的构成元素,Interface在具体的使用中应该有的实际意义都是交给Interface的使用者去确...阅读全文

CSDN博客 2014-08-25 19:38 chanshimudingxi

Go语言,在Ubuntu9.10和Windows安装

工作环境:Ubuntu9.10 A、安装C语言工具 Go的工具链采用C语言编写,构建需要安装以下开发工具: GCC, C语言标准库, the parser generator Bison, make, awk, 和 ed (编辑器). 对于 OS X 系统,以上工具是Xcode的一部分。 对于 Ubuntu/Debian 系统,运行安装命令: sudo apt-get install bison ed gawk gcc libc6-dev make B、安装Mercurial 在进行后面的操作之...阅读全文

Go并发编程(四)

并发基础 多进程 多线程基于回调的非阻塞/异步IO 协程 协程 与传统的系统级线程和进程相比,协程的最大优势在于其“轻量级”,可以轻松创建上百万个而不会导致系统资源衰竭,而线程和进程通常最多也不能超过1万个。这也是协程也叫轻量级线程的原因。多数语言在语法层面并不直接支持协程,而是通过库的方式支持,但用库的方式支持的功能也并不完整,比如仅仅提供轻量级线程的创建、销毁与切换等能力。如果在这样的轻量级线程中调用一个同步 IO 操作,比如网络通信、本地文件读写,都会阻塞其他的并发执行轻量级线程, 从而无...阅读全文

博客园 2015-01-22 09:59 anbylau2130

Go面向对象(三)

go语言中的大多数类型都是值予以,并且都可以包含对应的操作方法,在需要的时候你可以给任意类型增加新方法。二在实现某个接口时,无需从该接口集成,只需要实现该接口要求的所有方法即可。任何类型都可以被any类型引用。any类型是空接口 interface{}在Go语言中,你可以给任意类型(包括内置类型,但不包括指针类型)添加相应的方法 .如下package mainimport ("fmt")func main() { person.Go2School()}func (ps Person) Go2Sc...阅读全文

博客园 2015-01-22 09:57 anbylau2130

go语言defer使用

defer Go语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。如下代码所示,我们一般写打开一个资源是这样操作的: func ReadWrite() bool { file.Open("file") // 做一些工作 if failureX { file.Close() ...阅读全文

博客园 2015-01-16 16:03 chuanheng

Go语言基础知识学习笔记1

Go语言基础知识学习笔记1安装教程我就不写了,推荐大家下载msc的安装包,因为他会自动帮你配置一些环境变量,但是GOPATH这个工作目录的环境变量需要自己配置右键我的电脑->属性->高级系统设置->环境变量->新建系统变量变量名称大写 GOPATH 路径就你的工作目录,如我的是D:/go 如果有多个工作目录就使用";"分号分割根据约定,GOPATH下需要建立3个目录:bin (存放编译后生成的可执行文件)pkg (存放编译后生成的包文件)src (存放项目源码)查看环境变量与工作目录 控制台输入...阅读全文

Go项目目录管理

在Go的官网文档How to Write Go Code中,已经介绍了Go的项目目录一般包含以下几个: src 包含项目的源代码文件; pkg 包含编译后生成的包/库文件; bin 包含编译后生成的可执行文件。 可以通过下面的例子来说明工程目录的组织管理。(Windows 7 64位,go version go1.3.3 windows/amd64) 1. 创建一个库文件 创建一个库文件a.go并保存在scr目录的一个子目录下面。 package myfunc import "fmt" func...阅读全文

博客园 2015-01-17 16:15 sincerely

Go错误记录

本篇仅是日常开发中出现的错误记录以及解决方法。 1. no new variables on left side of := 错误原因:所使用的变量已经声明过,不能再使用:=赋值。:=仅支持声明的时候赋值。解决方法:使用=赋值。 2. found packages secondpkg (FileDownloader.go) and filedownloader (HttpGetExample.go) in D:\GoLang\src\filedownloader 错误原因:同一目录下面可以包含多...阅读全文

博客园 2015-01-17 16:13 sincerely

go语言 strconv.ParseInt 的例子

golang strconv.ParseInt 是将字符串转换为数字的函数,功能灰常之强大,看的我口水直流.func ParseInt(s string, base int, bitSize int) (i int64, err error)参数1 数字的字符串形式参数2 数字字符串的进制 比如二进制 八进制 十进制 十六进制参数3 返回结果的bit大小 也就是int8 int16 int32 int64代码: package main import ( "strconv" ) func mai...阅读全文

博客园 2015-01-16 15:32 chuanheng

golang select 退出结束goroutine

开启了多个协程 其中一个协程满足条件后终止select, 原以为其他的协程会在后台系统中继续悄悄运行 直到主进程关闭而关闭 。 做一实验发现select 监听退出 会关闭所有监听的goroutine package main import ( "fmt" "time" ) var stop bool = false func main() { ch := make(chan int, 0) ch2 := make(chan int, 0) defer func() { close(ch) clo...阅读全文

博客园 2015-01-16 17:58 wangxusummer

给自己一条退路,再次比较Erlang和Golang

给自己一条退路,再次比较Erlang和Golang_陈叶皓_新浪博客 雨天的周末,适合码字的时节。。。 一年前我开始学习go语言的时候,如获至宝,既有python的编码效率,又带来性能的15倍提升。尤其是在异步编程方面,可以使用channel同步线程,不必加锁可以充分利用cpu多核计算,真是没有弱点。 后来慢慢了解到,这种无锁异步编程的思想,源自一门叫做erlang的语言,Erlang更加了不起。除了异步编程之外,这门语言天生支持分布式,单机上开发的软件,可以不加修改地运行在集群上,另外还支持软...阅读全文

博客园 2015-01-20 13:54 seven1979

【玩转Golang】slice切片的操作——切片的追加、删除、插入等

一、一般操作 1,声明变量,go自动初始化为nil,长度:0,地址:0,nil func main(){ var ss []string; fmt.Printf("length:%v \taddr:%p \tisnil:%v",len(ss),ss, ss==nil) } --- Running... length:0 addr:0x0 isnil:true Success: process exited with code 0. 2,切片的追加,删除,插入操作 func main(){ var...阅读全文

博客园 2015-01-20 06:13 dajianshi