Go语言学习笔记(一)--前瞻

Go语言学习

0. 编程快捷手法

多选之后:shift+tab整体左移 tab整体右移

1. Go语言前瞻

​ 就业方向:1)区块链研发工程师,2)Go服务器、游戏软件工程师,3)Golang分布式/云计算软件工程师。应用领域:区块链;美团后台流量支撑程序(支撑后台流量:排序推荐搜索等,提供负载均衡,条件分流,统计运行指标);云计算、云服务

​ 为什么选择Go语言:1)计算机硬件更新频繁,不能合理利用多核多CPU的优势。2)软件系统复杂度越高,缺乏一个足够的简洁高效的编程语言【现有编程语言风格不统一,计算能力不够,不够处理大并发】。3)运行速度快编译速度慢,存在内存泄漏等困扰。

​ Go语言的特点:1)既能够达到静态编译语言的安全性能,有达到动态语言开发维护的高效率。2)继承C语言的很多理念包括表达式语法,控制结构,基础数据类型,参数传值,指针等等。3)引入包的概念用于组织格式,Go语言都要归属于一个包。4)垃圾回收机制,内存自动回收。5)天然的并发【goroutine(轻量级线程)实现大并发处理,高效利用多核;基于CPS并发模型(communicating sequential processes)】6)吸收了管道通信机制,形成独有的管道channel,实现不同goroutine之间相互通信。7) 函数返回多个值。

//写函数同时返回和和差
func getSumAndSub(n1 int, n2 int) (int, int) {
	sum := n1 + n2
	sub := n1 - n2
	return sum, sub
}

8)切片slice,延时执行defer等创新。

2. Go及Goland安装流程及配置

3. Go基本了解

官方编程指南:文档 - Go 编程语言 (google.cn)

标准库文档:Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国 (studygolang.com)

Go携带包包所在地址:…\go1.18.8.windows-amd64\go\src

Golang执行流程分析

存在两种执行流程:1)编译执行分开处理:.go—编译---->可执行文件(.exe)-----运行----->结果

2)编译执行一并处理.go -------go run------->结果

两种执行流程的区别:1)可执行文件在没有go环境的机器上仍然能够执行。2)go run 需要go环境。3)编译时编译器会将所依赖的库文件包含在可执行文件中导致exe文件变大。

Go程序开发注意事项:1)源文件必须以.go为拓展名。2)应用程序的执行入口是main函数。3)严格区分大小写。4)语句不需要分号【内部自动添加】。5)一行行编译,因此多条语句不能写在同一行。6)定义的变量或者import的包没有使用到代码不能编译通过。

Go语言的转移字符::\t:制表符,用于排版 ;\n:换行符 ;\:\因此在输入文件路径是要改成\\\":表示一个“用于输出引号 ; \r:回车

	fmt.Println("HelloWorld~~~")
	fmt.Println("Hello\tWorld")            //制表符\t
	fmt.Println("F:\\Goland_place")        //输出\\
	fmt.Println("xzc says \"helloworld\"") //输出”“
	fmt.Println("xzc123456\rxzc456")       //\r回车,从当前行的最前面开始输出,覆盖掉以前的内容相同长度的内容
	fmt.Println("姓名\t年龄\t住址\t籍贯\nxzc\t20\t20\t北京")
	
/*****输出*******/
Hello   World               
F:\Goland_place             
xzc says "helloworld"       
xzc456456                   
姓名    年龄    住址    籍贯
xzc     20      20      北京
//行注释
/*块注释*/

4. Go编程

4.1 变量

变量的声明,初始化和赋值基本语法:【var 变量名 数据类型 = 值】

程序中+号的使用:1)两边都是数值型,则做加法运算。2)两边都是字符串,则做字符串拼接。

注意事项:

1)变量表示内存中的一个存储空间,该空间由自己的名称和类型。2)变量使用的三种方式:a.指定变量类型,不赋值则使用默认值;b.根据值自行判断变量类型;c.省略var,:=左边的变量不能是已经声明过的。3)多变量声明。

/*go的变量使用方式*/
func bianLiang() {
	/*定义变量+声明变量+赋值使用*/
	//一. 不赋值输出默认值 ,int的默认值为0
	var i int
	fmt.Println("变量i=", i)
	//二. 类型推导:自行判断
	var num = 10.10
	fmt.Println("变量num=", num)
	//三. 省略var,使用:=
	name := "tom" //等价于var name string  name = "tom"
	fmt.Println("变量name", name)
	/*多变量声明*/
	//一次性声明相同变量
	var n1, n2, n3 int
	fmt.Println("变量n1,n2,n3分别是", n1, n2, n3)
	//声明不同变量,直接赋值
	//x1, x2, x3 := 100, "tom", 10.11
	//var x1, x2, x3 = 100, "tom", 10.11
	var (
		x1 = 100
		x2 = "tom"
		x3 = 10.11
	)
	fmt.Println(x1, x2, x3)
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值