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.仅仅能用于父子进程或者兄弟进程之 ...
随机推荐
- iOS同一项目多个Target的快速实现方法
之前写过这种场景下的项目,比如类似滴滴的司机端和乘客端,学生端和教师端等等.. 最近有人问我,就整理记录如下: 1.正常新建一个项目,完成后 如下: 2.这一步就是添加一个新的target 3.添加 ...
- iOS沙盒路径变化的说明详解
最近用沙盒存储文件的时候发现了一个奇怪的现象,由于业务需要,我会将保存的文件绝对路径保存以便下次读取. 于是发现一个找不到的现象,即上一次保存下的绝对路径,再第二次打开app去查找的时候,发现找不到. ...
- IE6-9不支持Textarea的maxlength属性
给textarea标签添加一个maxlength=200,测试工程师提bug说IE9没起作用.后一测试,发现IE10一下的浏览器均不支持 <textarea maxlength="20 ...
- Server Tomcat v7.0 Server at localhost failed to start.临时解决办法
错误名:Server Tomcat v7.0 Server at localhost failed to start. 解决办法:去掉下面这句话: (通常在代码开头部分,public class前) ...
- [嵌入式开发入门]4412开发板从零建立Linux最小系统
本文转自iTOP-4412开发板实战教程书籍 http://www.topeetboard.com iTOP-4412开发板不仅可以运行Android,还可以运行简单的Linux最小文件系统. 最小L ...
- JavaScript实现简单的双向绑定
很多的前端框架都支持数据双向绑定了,最近正好在看双向绑定的实现,就用Javascript写了几个简单的例子. 几个例子中尝试使用了下面的方式实现双向绑定: 发布/订阅模式 属性劫持 脏数据检测 发布/ ...
- KVM 介绍(3):I/O 全虚拟化和准虚拟化 [KVM I/O QEMU Full-Virtualizaiton Para-virtualization]
学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...
- SVN报Previous operation has not finished; run 'cleanup' if it was interrupted错误的解决方法
做着项目突然SVN报Previous operation has not finished; run 'cleanup' if it was interrupted,进度又要继续,烦.百度一下发现很多 ...
- Hadoop_MapReduce流程
Hadoop学习笔记总结 01. MapReduce 1. Combiner(规约) Combiner号称本地的Reduce. 问:为什么使用Combiner? 答:Combiner发生在Map端,对 ...
- C++ 之 重载赋值操作符
Widget 类中,定义了一个 Bitmap 类型的私有数据成员 -- pb 指针 class Bitmap { ... }; class Widget { private: Bitmap *pb; ...