golang入门之环境配置和基本语法

golang作为Google的亲儿子,现在关注度也越来越高,据说Android以后也会用golang代替Java开发,因为谷歌被甲骨文告了,每年都赔款十几亿美金....

Go的优势特性在于并发性,提供了令人惊讶的并发基元,良好的语法,优秀的函数库和快速的编译器。即使是基础代码变得很大的时候,使用Go语言依然很轻松,因为它使构造简单的同时保证可靠,高效。

我们项目组的在线客服系统就是用Go语言开发的,在接触Go之后更觉得其创新之举确实很有魅力。

下面记录“够浪”的入门学习笔记大笑,环境配置自己也是在网上找了很多资料,弄了很久才弄好,所以记录一下也算一个经验吧。

一、环境配置

1、系统:Linux (Ubuntu、CentOS...)

golangs是谷歌的大牛们在Linux下开发的编译型语言,在Linux下进行开发是最适合的,别再Windows下搞,浪费时间,编译代码很容易出问题,我是踩过坑的哭

2、go语言环境配置:下载go源码安装包,再配置路径环境

3、开发工具(编辑器) :Sublime Text 2 或Sublime Text 3

4、版本管理:git

我是在CentOS6.5下配置的环境,以这为例,步骤如下:

a.go安装配置,依次在终端下输入如下命令即可

       

wget -c http://www.golangtc.com/static/go/go1.3.linux-386.tar.gz   #下载32位Linux的够源码包
tar -zxvf  go1.1.linux-386.tar.gz      #下载文件后解压缩
cp -R go/ /usr/local/go      #移动到指定文件路径
vi /etc/profile      #配置环境变量
      在文件末尾加入:
      export GOROOT=/usr/local/go
      export GOBIN=$GOROOT/bin
      export GOPATH=/root/gocode      #该路径是放开发的工程项目的文件路径 ,不可与GOROOT一致,在该路径下建三个文件夹“src”、“pkg”、“bin”,自己开发的工程项目放在src下。
      export PATH=$PATH:$GOBIN:$GOPATH
      按“Esc”,再输入:qw           #命令保存退出
source /etc/profile    #使配置文件立刻生效
go env    #查看环境变量,有结果输出证明配置成功


b.安装配置sublime Text 2
网上下载对应版本的安装包;

安装gosublime插件;
打开配置Preference>packages Seetting>go Sublime>setting User
输入设置如下:
"env": {
      
   "PATH" : "/usr/local/go"
 },
c.安装git

yum install git

d.运行go项目工程的shell基本命令

go get 【开源库】      #下载go语言开源库 
go build  *.go         #在项目路径下编译所有go文件  
go build -o [文件名] *go  #编译所有go文件,生成指定的文件名的执行文件
./【文件名】     #运行编译后的执行文件 


二、基本语法

直接给链接参考

Go社区:http://studygolang.com/

Go入门语法指南:http://tour.studygolang.com/welcome/1

基础语法不多说,看看go的创新特色

Goroutines & Channels

写并发的代码已经很困难了,写并发访问网络的代码就更加困难了。问题在于传统的线程不能很好得伸缩,而且线程一旦运行起 来,就会很难去控制。而Go语言的goroutine解决了这个问题。本质上, goroutines是个轻量级的并发机制,通过使用一种称为channels管道来进行线程间交互。它们都非常易于使用。

 

<span style="font-size:18px;">go func(x,y) //即可异步调用方法 func

</span>
<span style="font-size:18px;">channel 是一种有类型的管道
var ch chan int = make(chan int) //创建管道
ch < - 1 //将1 送入管道ch
v := < - ch //从ch接收,并赋给v</span>

变量语法(对比java、golang)

language

变量声明

类型转换

常量

零值

变量列表

golang

类型放在变量之后x int, y int 或者 x,y int

函数外部声明一个或多个变量 var x,y int

在函数内部,可用`:=`代替var定义 k , p := 3 , "ok"

函数入参 直接使用 a [2]int ,y string

类型转换 var f float64 = float64(i)

当右值定义了类型时,新变量的类型与其相同 f := float64(i)

使用 const 关键字

const Pi = 3.14

(常量不能使用 := 语法定义)

  • 数值类型为 `0`,
  • 布尔类型为 `false`,
  • 字符串为 `""`(空字符串)。
  • slice 的零值是 `nil`。

默认值为零值

var 可定义包含一串变量的列表 var ( i, j int = 1, 2 )

const ( Pi = 3.14 , EA = "ABC" )

java变量在使用前必须声明类型 int x,int y 或者 int x,y

强制转换:(数据类型)数值

int avg2=(int)avg1;

常量使用final 关键字 final PI=3.14;

静态变量以static关键字声明,必须在方法、构造方法和语句块之外

数值型变量的默认值是0,

布尔型变量的默认值是false,

引用类型变量的默认值是null

/

golang 之 slice

数组不能改变大小,slice (切片)提供了更加便利的方式来操作数组,有点类似java里面的ArrayList。

[]T 是一个元素类型为 T 的 slice。 p := []int{2, 3, 5, 7, 11, 13}

s[t:k] 表示从 t 到 k 的 slice 元素

由函数 make 创建 ,  a := make([]int, 5)

向slice添加修改删除元素 a = append(a, 0, 1, 2)

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值