Go安装配置和《菜鸟教程之Go语言教程》学习笔记
Go 语言是一种让代码分享更容易的编程语言
- 菜鸟教程-Go语言教程(这个教程过于基础,体现不了Go的特性和强大。)
- 下载/安装Go语言
- 将 /usr/local/go/bin 目录添加至PATH环境变量
export PATH=$PATH:/usr/local/go/bin
- 设置GOPATH(go语言的workspace,默认是$HOME/go,如果是其他的目录则需要修改。)
- 测试1,执行
go run hello.go
, ~/go/src/hello/hello.go文件内容如下:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
- 测试2,进入
~/go/src/hello
目录执行go build
得到一个hello(目录的名字)可执行文件,执行./hello
进行测试; - GoLand下载
Go代码的一些注意事项
{
不能单独放在一行- 一行代表一个语句结束,不建议将多个语句写在一行然后使用“;”人为区分
- //单行注释,/* 多行注释1 */
- 声明变量的一般形式是使用 var 关键字:var identifier type 或 var identifier1, identifier2 type,例如:var b bool = true,如果没有初始化,则变量默认为零值
- 变量声明方式
- 第一种,指定变量类型,如果没有初始化,则变量默认为零值。var v_name v_type
- 第二种,根据值自行判定变量类型。var v_name = value
- 第三种,省略 var, 注意
:=
左侧如果没有声明新的变量,就产生编译错误。v_name := value- 只能被用在函数体内,而不可以用于全局变量的声明与赋值
:=
初始化声明一个新变量,=
仅仅是赋值
- 数据类型
- 布尔型
- 数字类型
- 字符串类型
- 派生类型
- 值类型&引用类型
- 值类型
- 所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值
- 可以通过 &i 来获取变量 i 的内存地址
- 值类型的变量的值存储在栈中
- 引用类型
- 一个引用类型的变量 r1 存储的是 r1 的值所在的内存地址(数字),或内存地址中第一个字所在的位置
- 当使用赋值语句 r2 = r1 时,只有引用(地址)被复制。如果 r1 的值被改变了,r2 也会受到影响。
- 值类型
- 交换变量值:a, b = b, a
- 空白标识符 _ 也被用于抛弃值,如值 5 在:_, b = 5, 7 中被抛弃
- 常量(在程序运行时,不会被修改的量)
- 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型
- const identifier [type] = value,例如
const b string = "abc"
,const b = "abc"
或const a, b, c = 1, false, "str" //多重赋值
- 指针变量 * 和地址值 & 的区别:指针变量保存的是一个地址值,会分配独立的内存来存储一个整型数字。当变量前面有 * 标识时,才等同于 & 的用法,否则会直接输出一个整型数字。
func main() {
var a int = 4
var ptr *int
ptr = &a
println("a的值为", a); // 4
println("*ptr为", *ptr); // 4
println("ptr为", ptr); // 824633794744
}
- Go 没有三目运算符,所以不支持 ?: 形式的条件判断
- 函数
func function_name( [parameter list] ) [return_types] {
函数体
}
- 变量
- 局部变量
- 全局变量
- 形式参数
- 数组声明:var variable_name [SIZE] variable_type,例如:var balance [10] float32
- 数据初始化:var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0} 或 var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
- 并发
- go 函数名( 参数列表 )
- channel
ch <- v // 把 v 发送到通道 ch
v := <-ch // 从 ch 接收数据
// 并把值赋给 v
Go安装配置和《菜鸟教程之Go语言教程》学习笔记的更多相关文章
- Nginx安装配置PHP(FastCGI)环境的教程
这篇是Nginx安装配置PHP(FastCGI)环境的教程.Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用. 一.什么是 FastCGI F ...
- Linux环境CentOS6.9安装配置Elasticsearch6.2.2最全详细教程
Linux环境CentOS6.9安装配置Elasticsearch6.2.2最全详细教程 前言 第一步:下载Elasticsearch6.2.2 第二步:创建应用程序目录 第四步:创建Elastics ...
- mysql5.6免安装配置(菜鸟版)
mysql5.6免安装配置 MySQL5.6.13安装步骤(Windows7 32位) 1. 下载MySQL Community Server 5.6.13 2. 解压MySQL压缩包 将以下载的My ...
- CentOS 6.0 安装配置rails 2.3.11 + redmine 1.2.1 笔记
没想到安装过程这么曲折,gem安装时下载经常是不成功的,无耐只好把.gem文件下载回来再本地安装,加上radmine 1.2.1对各组件的版本了也比较挑剔,中间走了不少弯路,折腾了二天时间,终于摸清路 ...
- 安装配置oracle11gR2、client、plsql developer及学习
本文是一个目录,以后会持续更新 1,安装oracle11gR2 https://www.cnblogs.com/suterfo/p/10659208.html 2,安装oracle client及配置 ...
- Ubuntu16.04下安装配置numpy,scipy,matplotlibm,pandas 以及sklearn+深度学习tensorflow配置+Keras2.0.6(非Anaconda环境)
1.ubuntu镜像源准备(防止下载过慢): 参考博文:http://www.cnblogs.com/top5/archive/2009/10/07/1578815.html 步骤如下: 首先,备份一 ...
- hive介绍、安装配置、表操作基础知识适合小白学习
1.hive概述 Apache Hive数据仓库软件有助于使用SQL读取,编写和管理驻留在分布式存储中的大型数据集.可以将结构投影到已存储的数据中.提供了命令行工具和JDBC驱动以将用户连接到Hive ...
- Libra教程之:move语言的特点和例子
文章目录 move语言的特点 资源优先 灵活性 安全性 可验证性 Move语句初探 点对点支付交易脚本 Currency Module move语言的特点 Libra的目标是打造一个全球话的金融和货币 ...
- Sass和compass 安装 和配合grunt实时显示 [Sass和compass学习笔记]
demo 下载http://vdisk.weibo.com/s/DOlfkrAWjkF/1401192855 为什么要学习Sass和compass ?提高站独立和代码产品化的绝密武器,尤其是程序化cs ...
随机推荐
- Python学习日记(三十八) Mysql数据库篇 六
Mysql视图 假设执行100条SQL语句时,里面都存在一条相同的语句,那我们可以把这条语句单独拿出来变成一个'临时表',也就是视图可以用来查询. 创建视图: CREATE VIEW passtvie ...
- C# 去除Split()中去除内容为空的数据
C#去除Split()中去除内容为空的数据 var str="0001,0002,"; var strusers1 = str.Split(','); ///结果["0 ...
- Linux下 svn相关操作
Linux下 svn相关操作 一.首先看看svn安装的位置: 命令: find / -name svn /var/svn :表示安装目录 /user/bin/svn :表示命令目录 可以看到的是svn ...
- spi调试步骤,mcp2515调试整理
1.先查看也硬件电路,一般都是单片机作为master,其他芯片作为slave.单片机的MOSI对应从机的SI,单片机的MISO对应从机的SO,如果两个引脚接反了,那是怎么调试都没有效果的. 2.单片机 ...
- 分布式任务平台XXL_JOB
目录 1.源码下载地址 2.文档地址 3.源码结构 4.初始化数据库 5.配置调度中心 ①.修改调度中心配置文件 ②.部署调度中心 ③.访问调度中心管理界面 6.创建执行器项目 ①.添加maven依赖 ...
- round.606.div2
A. Happy Birthday, Polycarp! 这个题意我确实没有看懂. 沃日,我懂了,我感觉我似乎都能切掉这题. B. Make Them Odd 这个我也能看懂.
- 验证码破解 | Selenium模拟登录简书
使用超级鹰打码平台处理登录的文字点击验证码 import time from io import BytesIO from PIL import Image from selenium import ...
- promethues exporter+ grafana 监控pg+mysql
这篇文章本来是打算使用pmm 进行数据库监控的,但是居然参考官方文档使用docker 运行起来有点问题,所以直接改用 exporter 进行处理,但是比pmm 弱好多 pmm 的参考架构 说明,以上图 ...
- 《Java虚拟机JVM故障诊断与性能优化》读书笔记(未完待续)
前言: 对于JVM学习用处的理解:我们程序员写的代码,虽说是放在服务器(linux)系统上的.但是很多时候,受JVM的影响,其实程序并没有发挥出服务器的最大性能.这时候,JVM就成为了瓶颈了.有瓶颈就 ...
- System.NotSupportedException:“No data is available for encoding 1252. For information on defining a custom encoding
最近搞 .net项目,Dapper连接Mysql时,运行报错: System.NotSupportedException:“No data is available for encoding 1252 ...