go语言自学笔记

CH1 走进Golang

[1] 简介:
Go (又称Golang) 是 Google 的 Robert Griesemer, Rob Pike 及 Ken Thompson 开发的一种计算机编程语言语言
[2] 设计初衷:
Go语言是谷歌推出的一种的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们
之所以开发G0,是因为过去10多年间软件开发的难度令人泪丧。派克表示,和今天的C++或C一样,Go是一种系统语言。他解释道,"使用它可以
进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。
1)计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能,
2)软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。
3)企业运行维护很多c/C++的项目,c/C++程序运行速度虽然很快,但是编译速度确很慢,同时还存在内存泄漏的一系列的困扰需要解决。
[3] 应用领域:

开发工具

SDK环境安装
此时配置环境变量即可解决
在系统的path中加入sdk的bin的路径。

第一个go代码

第一个HelloWorld :
编写号代码在文件夹以后对源文件进行编译。即可直接运行编译后的二进制文件。

GO执行流程

[2] 上述两种执行流程的方式区别
1)在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件
变大了很多。


2)如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环
境的机器上,仍然可以运行
3)如果我们是直接go run go源代码,那么如果要在另外一个机器上这么运行,也需要go
开发环境,否则无法执行。
4)go run运行时间明显比第一种运行编译好后的文件运行时间长。

语法注意事项 

(1)源文件以"go"为扩展名。
(2)程序的执行入口是main()函数。
(3)严格区分大小写。
(4)方法由一条条语句构成,每个语句后不需要分号Go语言会在每行后自动加分号),这也体现出Golang的简洁性。
(5)Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错。
(6)定义的变量或者import的包如果没有使用到,代码不能编译通过。
(7)大括号都是成对出现的,缺一不可。


注释

代码风格

【1】注意缩进 
tab向右缩进,shift取消向右缩进。

gofmt:格式化代码


【2】成对编程:{} ()“”
【3】运算符两边加空白


【4】注释: 推荐行注释 //
【5】以下代码是错误的:

原因: go的设计者想要开发者有统一的代码风格,一个问题尽量只有一个解决方案是最好的
【6】行长约定:
一行最长不超过80个字符,超过的请使用换行展示,尽量保持格式优雅

API

 Golang中文网在线标准库文档: https://studygolang.com/pkgdoc
查看各种包的使用方法


函数功能源码查看

也可以使用离线的api

CH2 基本变量与类型

变量

[1] 变量的引入
一个程序就是一个世界
不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位
[2] 变量的介绍
变量相当于内存中一个数据存储空间的表示


[3] 变量的使用步骤
1.声明
2.赋值
3.使用
 

var age int = 18
fmt.Println("age =",age)

指定一个int类型的值但不进行赋值,其默认值是0.

四种变量的赋值方式

声明多个变量

var n1,n2,n3 int
var n4,name,n5 = 10,"jake",7.8
n6,height := 6.9,100.6

在{}中的叫局部变量,{}之外的叫全局变量
一次性的全局变量声明:

var{
 n9 = 10
 n10 = 100
}

数据类型

go语言数据类型大概分如图所示

 进制及 转换

对于除数的余数为什么是倒着读的,个人理解是十进制数是从高位开始除,除到最后低位。

基本数据类型 

整数形

  

 (5] 这么多整数类型,使用的时候该如何选择呢?Golang程序中整型变量在使用时,遵守保小不保大的原则即:在保证程序正确运行下,尽量使用占用空间小的数据类型。

浮点型 


[1] 浮点类型介绍
简单的说,就是用于存放小数值的,比如3.14、0.28、-7.19等等
[2] 浮点类型种类:

PS:底层存储空间和操作系统无关
Ps:浮点类型底层存储:符号位+指数位+尾数位,所以尾数位只是存了 一个大概,很可能会出现精度的损失。
 

使用方法:

字符型(其实go中没有)

[1] Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。
[2] Golang中字符使用UTF-8编码
[3] ASCII码表:
左面是不可见字符 右面是可见字符

 

 [6] 转义字符
转义字符:将后面的字母表示为特殊含义

关于 \r :一个回车 fmt.Println("天龙八部雪山飞狐\r 张飞");

    这个有点类似python里面的 \r ,每次都覆盖上一次输出的内容。

    在go里也是覆盖,不过每次只能覆盖本身的长度,比如这个输出就是“张飞八部雪山飞狐”

制表符用于对齐上下输出的内容。 

bool类型

第三个输出true。

字符串

[1] 介绍:
字符串就是一串固定长度的字符连接起来的字符序列
[2] 字符串的使用

功能效果

基本数据默认值

基本数据类型之间的转换

[1] Go在不同类型的变量之间赋值时需要显式转换,并且只有显式转换(强制转换)。
[2] 语法:

表达式T(v)将值v转换为类型T
T:就是数据类型
v:就是需要转换的变量

var num1 int = 100
var num2 int8 = int8(num1)


[3] 案例展示:

基本数据类型转换为string

[1] 基本数据类型和string的转换介绍
在程序开发中,我们经常需要将基本数据类型转成string类型。或者将string类型转成基本数据类型
[2] 基本类型转string类型
方式1:fmt.Sprintf("%参数",表达式)
方式2:使用strconv包的函数
[3] 代码测试:

    var n1 int = 19
	var s1 string = fmt.Sprintf("%d",n1)
	fmt.Printf("s1对应的类型是:%T,s1 = %v",n1,s1)//%T此变量类型的go语法表示 %v值的默认格式

 

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值