go linux 学习记录
1 yum install mercurial 安装mercurial包
2 yum install git 安装git包
3 yum install gcc 安装gcc
4 然后就可以下载golang的压缩包了 下载地址http://golangtc.com/download 选择正确版本 注意32位和64位 我下的是go1.2.linux-amd64.tar.gz
5 tar -zxvf go1.2.linux-amd64.tar.gz 解压该包 我的放在/var下 解压后会生成一个go的文件夹
6 修改环境变量 vi /etc/profile
export GOROOT=/var/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/var/gopkg
GOPATH和GOROOT修改为你的路径即可
7 刷新环境变量 source /etc/profile
8 进入go/test/ 执行go run helloworld.go
9 切换用户后也需要执行source /etc/profile 刷新环境变量 才可执行go run helloworld.go;
vi /etc/profile 为环境变量配置
export GOPATH=/var/www/gogogo/test 设置临时环境变量
摘自:http://jingyan.baidu.com/article/90895e0ffb4f1764ec6b0baa.html
二次yum install 安装
现在系统为centos 7.2
yum install go
执行安装
查看了 /etc/profile 环境变量文件 未发现有关于go 的环境配置
find / -name golang
发现
/usr/lib/golang
修改环境变量文件
export GOROOT=/usr/lib/golang(golang的安装目录)
export PATH=$GOROOT/bin:$PATH
export GOPATH=/var/www/gogogo/BeegoTest(我一个项目的目录)
保存退出
刷新环境变量
source /etc/profile (我觉得这个就是在此导入profile到系统中的概念,和msyql 的source 差不多区别)
然后进去我的项目src中 go run main.go
执行了我的项目,即可。
继续研究export GOPATH
2016-12-09
os 包:
os 包以跨平台的方式,提供一些与操作系统交互的函数和变量。
os.Args变量是一个字符串的切片(slice) ,类似于数组,s[i]:访问s中的单个元素,s[n,m]:获取n至m的参数,不包括第m个。使用该包需要在前面import()中加入"os",以引入。
for 循环几种形式。go语言中只有for 循环一种循环方式
for condition { //当condition 为true 时 执行 do
do...
}
for { 死循环
do ....
}
for _, arg := range os.Args[i:] { //遍历 传给_,arg 然后do ,range 会产生两个数值,索引和值,前面必须要有两个变量来接受,否则错误,_,表示空标识符,程序自动会丢弃掉。
do
}
map 类似于数组,存储了键/值(key/value)的集合,
array:由key=>value 格式;官方=》array 由[n]<type> 定义, n 标示array 的长度,而<type> 标示希望存储的内容的类型。对array 的元素赋值或索引是由方括号完成的:
标准定义声明使用格式:
var arr = [10]int //有固定大小
arr[0] = 1 //赋值
arr[1] = 2 //赋值
简写:a := [10]int{1,2}//定义一个长度为10的数组
a = [...]int{1,2,3,4,5}//数组会自动计算后面元素个数来设置长度
二维数组:
a := [2][2]int{[2]int{1,2},[2]int{3,4}} =》 a := [2][2]int{ [...]int{1,2}, [...]int{3,4} }
测试得知:二维数组中二级数组是需要制定长度的。
固定长度后没有定义的值都为0
string
内建函数
close new panic complex delete make recover real len append print imag cap copy println
close 用于channel 通讯。使用它来关闭channel,参阅第7 章了解更多。
delete 用于在map 中删除实例。
len 和cap 可用于不同的类型, len 用于返回字符串、slice 和数组的长度。参
阅“array、slices 和map” 小节了解更多关于slice、数组和函数cap 的详细信息。
new 用于各种类型的内存分配。参阅“用new 分配内存” 的第59 页。
make 用于内建类型(map、slice 和channel)的内存分配。参阅“用make 分配
内存” 的第59 页。
copy 用于复制slice。参阅本章的“slice”。
append 用于追加slice。参阅本章的“slice”。
panic 和recover 用于异常处理机制。参阅“恐慌(Panic)和恢复(Recover)”
常用包
标准的 Go 代码库中包含了大量的包,并且在安装 Go 的时候多数会伴随一起安 装。浏览 $GOROOT/src/pkg 目录并且查看那些包会非常有启发。无法对每个包就 加以解说,不过下面的这些值得讨论: a
fmt
包 fmt 实现了格式化的 I/O 函数,这与 C 的 printf 和 scanf 类似。格式化短
语派生于 C 。一些短语(%-序列)这样使用:
%v
默认格式的值。当打印结构时,加号(%+v)会增加字段名;
%#v
Go 样式的值表达;
%T
带有类型的 Go 样式的值表达;
a描述来自包的go doc。额外的解释用斜体。
这个包提供了原始的 I/O 操作界面。它主要的任务是对 os 包这样的原始
的 I/O 进行封装,增加一些其他相关,使其具有抽象功能用在公共的接口
上。
这个包实现了缓冲的 I/O。它封装于 io.Reader 和 io.Writer 对象,创建了另
一个对象(Reader 和 Writer)在提供缓冲的同时实现了一些文本 I/O 的功
能。
常用的包
53
io
bufio
sort
sort 包提供了对数组和用户定义集合的原始的排序功能。
strconv
strconv 包提供了将字符串转换成基本数据类型,或者从基本数据类型转
换为字符串的功能。
os
os 包提供了与平台无关的操作系统功能接口。其设计是 Unix 形式的。
sync
sync 包提供了基本的同步原语,例如互斥锁。
flag
flag 包实现了命令行解析。 参阅 “命令行参数” 在第 91 页。
encoding/json
encoding/json 包实现了编码与解码 RFC 4627 [5] 定义的 JSON 对象。
text/template
数据驱动的模板,用于生成文本输出,例如 HTML。
将模板关联到某个数据结构上进行解析。模板内容指向数据结构的元素
(通常结构的字段或者 map 的键)控制解析并且决定某个值会被显示。模
板扫描结构以便解析,而 “游标” @ 决定了当前位置在结构中的值。
net/http
net/http 实现了 HTTP 请求、响应和 URL 的解析,并且提供了可扩展的 HTTP
服务和基本的 HTTP 客户端。
unsafe
unsafe 包包含了 Go 程序中数据类型上所有不安全的操作。 通常无须使用
这个。
reflect
reflect 包实现了运行时反射,允许程序通过抽象类型操作对象。通常用于
处理静态类型 interface{} 的值,并且通过 Typeof 解析出其动态类型信息,
通常会返回一个有接口类型 Type 的对象。
参阅 6,第 “自省和反射” 节。
os/exec
os/exec 包执行外部命令。
go linux 学习记录的更多相关文章
- linux学习记录(第六章、Linux 的文件权限与目录配置)
书看的是鸟哥的私房菜,系统用的是centos.被微软坑了N年才发现linux才是王道. 在这里记录些学习的记录.备忘
- Linux 学习记录 一(安装、基本文件操作).
Linux distributions主要分为两大系统,一种是RPM方式安装软件的系统,包括Red Hat,Fedora,SuSE等都是这类:一种则是使用Debian的dpkg方式安装软件的 ...
- Linux 学习记录一(安装、基本文件操作).
Linux 名字的由来,是当时作者将初版的 Linux 发布在网上,供别人下载完善,而那个核心文件夹就叫 Linux,就这么叫着了.而为什么 Linux 的吉祥物是一只企鹅呢?是因为当时大家要发行稳定 ...
- Linux学习记录
---恢复内容开始--- linux与unix的关系 linux是借鉴了unix设计思想,也称linux位类unix系统. Linux常用命令 1.命令基本格式 命令[选项][参数] 注意:个别命令不 ...
- Linux 学习记录
整理学习Linux操作系统遇到的不理解的概念.逐个进行补充.我们用的版本是CentOs. what's the gcc? what's the yum? what's the wget?
- linux学习记录.1.安装
最近想了想决定开始学习linux. 在百度了一番后开始了安装,虚拟机VirtualBox,ubuntu. 基于VirtualBox虚拟机安装Ubuntu图文教程: http://blog.csdn.n ...
- Linux学习记录(一)
1.Linux的简介 1.1.Linux的概述 Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林 ...
- Linux学习记录(一):常用命令
此篇文章为博主在Linux学习过程中的一些记录,记录在此方便查阅. 常用命令总结 ls 显示目录内容 (list directory contents) ls 不显示隐藏的文件和子目录 ls -a 显 ...
- linux学习记录 常用指令大全
1.开启关闭服务器(即时生效): service iptasbles start service iptasbles stop 2.在开启了防火墙时,做如下设置,开启相关端口, 修改/etc/sysc ...
- Linux学习记录--匿名沟通渠道
匿名沟通渠道 管道Linux最初支持Unix IPC其中的一种形式.具有下列特征: 1.管道是半双工.数据可以仅在一个方向流动:当双方需要沟通.建设两条管线需要. 2.仅仅能用于父子进程或者兄弟进程之 ...
随机推荐
- Linux基本操作命令之文件查看cat more less tail head
cat 参考之前博客:Linux基础命令之cat使用方法大全 more 命令 命令:more使用权限:所有使用者使用方式:more [选项] filename说明:类似于cat,不过会一页一页的显示内 ...
- plain framework 1 版本更新 1.0.2 增加打包插件
由于个别因素,该框架的文档没有及时的更新到博客上,但是离线的文档已经完成.本次更新对框架来说显得比较重要,因为在文档的编写过程中经过再次的阅读代码修复了不少错误,最主要的是统一了整个框架的标准风格.对 ...
- BZOJ1015[JSOI2008]星球大战starwar[并查集]
1015: [JSOI2008]星球大战starwar Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 5253 Solved: 2395[Submit ...
- 第四章 Hibernate入门
1.构建了一个Student实体类 public class Student { private Integer id; //name private String name; //age priva ...
- AC日记——统计数字字符个数 openjudge 1.7 01
01:统计数字字符个数 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一行字符,统计出其中数字字符的个数. 输入 一行字符串,总长度不超过255. 输出 输出为1行,输出字符串 ...
- C#类型转换运算符之 explicit implicit
类型转换运算符 explicit和implicit用于声明用户定义的类型转换运算符,如果可以确保转换过程不会造成数据丢失,则可使用这两个关键字在用户定义的类型和其他类型之间进行转换. explicit ...
- 借助91助手,将ibook中的pdf文件拷贝至其它的pdf阅读器中(ios设备无需越狱)
有时候在使用ios自带的ibook阅读pdf文件的时候,会发现ibook有些功能并不是那么方便.最近我就遇到了一例,我想在ibook中放一本比较大的pdf书,页数有几百吧,pdf文件本身每一章节都是有 ...
- 如果觉得配置文件没有错,但web-dev-server总是报错,可以在hosts文件里加一行127.0.0.1 localhost
如果觉得配置文件没有错,但web-dev-server总是报错,可以在hosts文件里加一行127.0.0.1 localhost
- 在实例中说明java的类变量,成员变量和局部变量
java中一般有三种变量:类变量,成员变量和局部变量.类变量 1.下面先看类变量,看下面这个例子 public class Demo6{ public String name; public int ...
- SuperSlidev2.1滑动门
1.引用jQuery.js 和 jquery.SuperSlide.js 因为SuperSlide是基于jQuery的插件,所以前提必须先引用jQuery,再引用SuperSlide <head ...