gogo语言学习笔记一

author author     2022-08-18     239

关键词:

a、为何学习GO语言?

从个人角度来看,第一是被GO语言传说中的那样超高的开发效率和运行效率所吸引;第二是GO语言在语言层面支持并发,这在现在的编程业务中是很方便的;第三是由于前两点,我觉得以后GO会火起来;最后一点,做技术嘛,跟着微软或者谷歌总会是有肉吃的^_^!

b、第一个GO程序

根据国际惯例,学习一门语言,总会以一个Hello World开始,同样,看第一个GO程序来感受一下GO的世界

package main

import "fmt"

func main(){
    fmt.Println("Hello World!")
}

package---包声明,表示这段代码属于哪个包

import---导入包,导入fmt是因为需要使用fmt包中的Println函数//不能导入代码中没有用到的包,编译会报错

/******************开始语言*********************/

一、顺序编程

1、变量

a、声明:

  引入关键字 var , 类型信息在变量名之后

var a int
var v2 string  
var v3 [10]int  //数组  
/*多个变量一起声明*/
var (
  v1 int
  v2 string
)

b、初始化

var v1 int = 10
var v2 = 10 //可以自动推导类型
v3 := 10 //v3不能是已经声明过的变量  

c、赋值

var v4 int
v4 = 10
/*多重赋值*/
a , b = 2 , 3
i , j = j , i

d、匿名变量

  Go语言支持多返回值和匿名变量,由于函数可以多返回值,在接收的时候可以选择性的接收

func getName()(firstName , lastName , nickName){
    return "zhangsan" , "lisi" , "wuhaha"
}

_ , _ , nickName := getName()

 

2、常量

a、字面常量-----程序中硬编码的常量(无类型)

  -12
  3.14159265358979325846//浮点型的常量
  3.2 + 12i //复数型的常量
  true //布尔型的常量
  "foo" //字符串型的常量

b、常量定义

关键字 const

const Pi float64 = 3.14159265358979323846

const (
  size int64 = 1024
  eof = -1
)
const mask = 1 << 3 //编译期运算的常量表达式

常量赋值是一个编译期行为,所以右值不可以是任何需要运行期才能得出结果的表达式

如下错误栗子:

const errooooor = os.GetEnv("HOME")//os.GetEnv()要在运行期才能得出结果

c、预定义常量

true , false , iota

iota---可被编译器修改的常量,每const出现一次,iota被重置为0,在下一个const出现之前,没出现一次iota,iota代表的数字+1 

const (
    c0 = iota //co == 0
    c1 = iota //c1 == 1
    c2 = iota //c2 == 2     
)

const (
    c0 = 1 << iota //c0 == 1
    c1 = 1 << iota //c1 == 2
    c2 = 1 << iota //c2 == 4                 
)

d、枚举---定义一组常量

const (
  Sunday = iota
  Monday
  Tuesday
  Wednesday
  Thursday
  Friday
  Saturday
  numberOfDays // 这个常量没有导出
)

同Go语言的其他符号( symbol)一样,以大写字母开头的常量在包外可见。以上例子中numberOfDays为包内私有,其他符号则可被其他包访问。  

  

  

  

  

  

gogo语言学习笔记五

函数1、函数的基本组成  关键字func,函数名,参数列表,返回值,函数体,返回语句。2、函数的定义  举个栗子  packagemymathimport"errors"funcAdd(aint,bint)(retint,errerror){ ifa<0||b<0{//假设这个函数只支持两个非负数字的加法 ... 查看详情

gogo语言学习笔记二

基本类型:布尔型:boolean整型:int8,byte,int16,int,uint,uintptr等浮点型:float32,float64复数类型:complex64,complex128字符串型:string字符型:rune错误类型:error复合类型:指针:pointer数组:array切片:slice字典:map通道:chan结构体:struct... 查看详情

gogo语言学习笔记四

 流程控制1、条件语句举个栗子:ifx>5{return1;}else{return0;}注意:?条件语句不需要使用括号将条件包含起来();?无论语句体内有几条语句,花括号{}都是必须存在的;?左花括号{必须与if或者else处于同一行;?在if之后,条件语句之前,... 查看详情

gogo语言环境安装(代码片段)

...工具  1、Linux(CentOS7.4版)  2、go1.11.2.linux-amd64.tarGo语言环境安装  1、下载安装包    安装包下载地址为:https://golang.org/dl/。      如果打不开可以使用这个地址:https://golang.google.cn/dl/。      2、将... 查看详情

从gogos迁移到gitea(代码片段)

...文档:https://docs.gitea.io/zh-cn/upgrade-from-gogs/0、一开始因为gogos很轻量,部署很方便选择了它,但是因为最近gogos已经有段时间不更新了,使用过程中发现很多想要功能都没有,用起来很不方便。最近发现还有gitea这么个项目,是gogo... 查看详情

gogo更新1.18版本并在docker下运行实际案例(代码片段)

目录零、摘要一、查看现有版本二、升级版本1.官网下载最新版本2.修改环境变量3.确认版本三、在Docker中使用解决Docker中拉取仓库需要输入密码解决包下载连接超时docker-compose.yml四、总结零、摘要MacOS更新GO版本1.18Docker下运行GO... 查看详情

numpy学习笔记一

NumPy学习笔记一 《NumPy学习笔记》系列将记录学习NumPy过程中的动手笔记,前期的参考书是《Python数据分析基础教程NumPy学习指南》第二版、《数学分析》第四版(华东师范大学数学系)、《概率论与数理统计》(陈希孺,中... 查看详情

bpm学习笔记一

名词解释:DC:DevelopmentComponentWD:WebDynproKeepDCLocalforNow  查看详情

linux学习笔记一(代码片段)

linux学习笔记一文章目录linux学习笔记一Linuxpackageoperationoflookingfilesoperationhelpcommandsowncommandsechotunnelechoagainuserorrootprocessingaliasagainfinding这个是我在学习linux系统的时候的一点的小小的总结,希望对大家有一定的在帮助啦。Linux 查看详情

html学习笔记一

HTML 是用来描述网页的一种语言。HTML指的是超文本标记语言(Hyper Text Markup Language)HTML不是一种编程语言,而是一种标记语言 (markuplanguage)标记语言是一套标记标签 (markuptag)HTML使用标记标签来描述网页HTML标签... 查看详情

学习笔记一

...程价值这四方面出发,全面的认识自己,培养预复习、记笔记的良好学习习惯,从而达到自己的理想的目标。1.2约定学习使用的系统:centOS7.3系统虚拟软件:VMwareworkstation10远程连接工具:puTTy+Xshell(Xshell方便、免费)学习过程... 查看详情

学习笔记一

...程价值这四方面出发,全面的认识自己,培养预复习、记笔记的良好学习习惯,从而达到自己的理想的目标。1.2约定学习使用的系统:centOS7.3系统虚拟软件:VMwareworkstation10远程连接工具:puTTy+Xshell(Xshell方便、免费)学习过程... 查看详情

学习笔记一

...程价值这四方面出发,全面的认识自己,培养预复习、记笔记的良好学习习惯,从而达到自己的理想的目标。1.2约定学习使用的系统:centOS7.3系统虚拟软件:VMwareworkstation10远程连接工具:puTTy+Xshell(Xshell方便、免费)学习过程... 查看详情

veriloghdl学习笔记一(代码片段)

VerilogHDL学习笔记一文章目录VerilogHDL学习笔记一一、简介二、第一个案例三、环境的配置四、其他知识一、简介VerilogHDL是一种硬件描述语言二、第一个案例这个只是一个展示了modulecounter10(//端口定义inputrstn,//复位端,低有效i... 查看详情

veriloghdl学习笔记一(代码片段)

VerilogHDL学习笔记一文章目录VerilogHDL学习笔记一一、简介二、第一个案例三、环境的配置四、其他知识一、简介VerilogHDL是一种硬件描述语言二、第一个案例这个只是一个展示了modulecounter10(//端口定义inputrstn,//复位端,低有效i... 查看详情

html学习笔记《一》

  HTML一、简介  1.HTML是超文本标记语言,标准通用标记语言下的一个应用。  2.“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。  3.超文本标记语言的结构包括“头”部分(英语:Head)、... 查看详情

gogo国内镜像

【国外镜像】https://proxy.golang.org 【国内推荐镜像】 https://goproxy.io https://athens.azurefd.net https://goproxy.cnhttps://gocenter.iohttps://mirrors.aliyun.com/goproxy/  查看详情

tenseal学习笔记一(代码片段)

...ontextEncryptionandEvaluation引言发现网上没有什么TenSEAL的学习笔记,只能看官方文档,所以打算根据官方文档和自己的一些理解写一下TenSEAL的学习笔记。TenSEAL简介Tutorial0:GettingStartedWelcometoTenSEA 查看详情