Go基础<1> 1.运行 2.注释 3.变量 4.基本类型 5.常量 6.运算符

Go语言基础教程

Go基础

1. 代码运行

程序的执行分为两步:1. 编译 2.执行

1. 1 编译

编译的操作步骤:点击 “编译” 菜单,选择 “Build” (或者直接按快捷键Ctrl+B).编译的目的是检查我们写的代码是否出错,如果没有出错,那么会提示“成功”,并且在我们程序所在的目录生成一个.exe文件,该文件就是可执行文件。如果出错那么会显示错误信息,并且不会生成.exe文件

1.2 执行

编译操作完成后,我们就可以执行我们的代码了,选择“编译”菜单中的”Run”,执行。执行的就是编译所生成的.exe文件。如果不执行“Build”,直接执行”Run”,可以吗?不可以,因为不执行”Build”就无法生成”.exe”文件,那么也就无法执行。最后,为了方便高效可以选择“Run”,这个选项,将编译与执行放在一起操作。

1.3 其它注意事项:

强制左花括号{的放置位置,如果把左花括号{另起一行放置,这样做的结果是Go编译器报告编译错误。
每行代码占一行。

2. 注释

2.1 单行注释 //注释内容

2.2 多行注释 /* 注释内容 */

通过用自己熟悉的语言(例如,汉语),在程序中对某些代码进行标注说明,这就是注释的作用,能够大大增强程序的可读性。

3. 变量

所谓的变量简单的理解就是计算机用来存储数据的

3.1 变量类型

在定义变量时就要告诉计算机,定义的变量存储是什么类型的数据。那么在内存中就可以根据不同的类型来开辟不同的存储空间。

3.2 变量声明

所谓声明变量就是创建一个变量,并且指定该变量存储什么类型的数据。
Go语言引入了关键字var,而类型信息放在变量名之后,示例如下:

//1.声明格式 var 变量名 类型
//注意:变量声明了,必须要使用,否则报错
//同一个{}里,声明的变量名是惟一的
var a int

//可以同时声明多个变量,中间用逗号隔开
var b, c int

3.3 变量初始化

在定义变量时,就给变量赋值,这种方式就是变量的初始化

//var 变量名 数据类型 = 值
var b int = 10

注意:在这里我们将”=”符号,读作“赋值号”,不能读作“等号”

3.4 变量赋值

除了在定义变量时,完成初始化以外,我们也可以在变量定义完后,再给变量赋值,也就是先声明后赋值,示例如下:

//变量名 = 值
var a, b int
b = 10
c = 20
fmt.Println(b, c)  //输出10 20

3.5 自动推导类型

所谓自动推导类型,就是不用通过var 声明变量,不用指定类型,直接在变量名后面跟”:”号,同时完成赋值。这种方式,也是我们以后开发过程中最常用的方式。

//变量名 := 值
a := 30

3.6 多重赋值匿名变量

  • 多重赋值
//将1的值赋值给a,将10的值赋值给b,将30的值赋值给c.
a, b, c := 1, 2, 3
  • 匿名变量
    _匿名变量,丢弃数据不进行处理, _匿名变量配合函数返回值使用才有价值
_, b, _, d := 1, 2, 3, 4   // b 2, d 4 

3.7 数据置换

a, b := 10, 20  // a 10, b 20
a, b = b, a // a 20, b 10

3.8 输出格式

fmt.print("a")  //输出不换行
fmt.Println("a")//输出并换行
fmt.Printf("%s", "a") //格式化输出

3.9 接收输入

var age int 
//第一个参数,所输入的数据对应类型
fmt.Scanf("%d", &age)   //注意age变量前面一定要加上“&”符号,表示获取内存单元的地址,然后才能够存储。
或
fmt.Scan(&age)

//接受一行字符串输入
str, err = bufio.NewReader(os.Stdin).ReadString('\n')

3.10 变量命名规范

  1. 变量命名规范要求
  • 名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。大写字母和小写字母是不同的:heapSort和Heapsort是两个不同的名字。
  • GO语言自己特有的,具有一定含义的一些字符,也不能作为变量名称。例如func,fmt,print等等,这些都是GO自带的,具有特殊含义的字符,我们称为关键字。
  • 此外,还有大约30多个预定义的名字,比如int和true等
  1. 见名知意
  2. 驼峰命名法
    小驼峰式命名法(lower camel case) myName
    大驼峰式命名法(upper camel case) FirstName

4. 基本类型

4.1 基本类型

类型名称长度零值说明
bool布尔类型1false其值不为真即为假,不可以用数字代表true或false
int, uint整型-032位或64位 根据操作系统系统
int8整型10-128 ~ 127,
uint8整型100 ~ 255
int16整型20-32768 ~ 32767,
uint16整型200 ~ 65535
int32整型40-2147483648 到 2147483647
uint32整型400 到 4294967295(42亿)
int64整型80-9223372036854775808到 92233720368547758070
uint64整型800到 18446744073709551615(1844京)
byte整型10代表了 ASCII 码的一个字符。 源码:type byte = uint8
rune整型40代表一个 UTF-8 字符。当需要处理中文、日文或者其他复合字符时,则需要用到 rune 类型。rune 类型实际是一个 int32。 源码:type rune= uint32
uintptr整型80用于存放一个指针
float32浮点型40.0IEEE-75432 位浮点数
float64浮点型80.0IEEE-75464 位浮点数
complex64浮点型80.0 + 0.0i32 位实数和虚数;
complex128浮点型160.0 + 0.0i64 位实数和虚数;
string字符串“”utf-8字符串

4.2 fmt输入输出格式化

格式含义
%%一个%字面量
%b一个二进制整数值(基数为2),或者是一个(高级的)用科学计数法表示的指数为2的浮点数
%c字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
%d一个十进制数值(基数为10)
%f以标准记数法表示的浮点数或者复数值
%o一个以八进制表示的数字(基数为8)
%p以十六进制(基数为16)表示的一个值的地址,前缀为0x,字母使用小写的a-f表示
%q使用Go语法以及必须时使用转义,以双引号括起来的字符串或者字节切片[]byte,或者是以单引号括起来的数字
%s字符串。输出字符串中的字符直至字符串中的空字符(字符串以’\0‘结尾,这个’\0’即空字符)
%t以true或者false输出的布尔值
%T使用Go语法输出的值的类型
%x以十六进制表示的整型值(基数为十六),数字a-f使用小写表示
%X以十六进制表示的整型值(基数为十六),数字A-F使用小写表示

5. 常量

5.1 常量定义使用

//在程序运行过程中其值不能发生改变的量 称为常量

//常量定义 const 常量名 数据类型 = 值

const a int = 10
或
//自动推导类型 在定义常量时 可以省略数据类型
const a = 10 

注意:

  • 定义常量时 不允许使用:=
  • 不能获取常量地址

5.2 字面常量

所谓字面常量(literal),是指程序中硬编码的常量

123 整型常量
3.1415 浮点类型常量
3.14 + 12i 复数类型常量
true 布尔类型常量
“abc” 字符串类型常量

5.3 iota枚举

	//常量的集合 枚举
	const(
		A = iota    //0
		B = iota    //1
		C = iota    //2
	)
	//项目中的常用方式,不要讲iota与其他字面常量混合使用 
	const (
		A = iota    //0
		B           //1
		C           //2
	)

	const (
		A,B = iota, iota//0, 0
		C,D             //1, 1
		E,F             //2, 2
	)
	
    const (
    	A = iota    //0
    	B           //1
    	C = 33      //33
    	D           //33
    )

6. 运算符

GO语言中常见的运算符有算术运算符,赋值运算符,关系运算符,逻辑运算符等。

注意:类型转换 方式:转换类型(被转换数据)

Go语言中不允许隐式转换,所有类型转换必须显式声明(强制转换),而且转换只能发生在两种相互兼容的类型之间

6.1 算术运算符

运算符术语示例结果
+10 + 515
-10 - 55
*10 * 550
/10 / 52
%取模(取余)10 % 31(正负由被除数相同)
++后自增,没有前自增a=0; a++a=1
后自减,没有前自减a=2; a–a=1

6.2 赋值运算符

=是普通赋值,+=,-=等称为“复合赋值运算符”

运算符说明示例
=普通赋值c = a + b 将 a + b 表达式结果赋值给 c
+=相加后再赋值c += a 等价于 c = c + a
-=相减后再赋值c -= a 等价于 c = c - a
*=相乘后再赋值c *= a 等价于 c = c * a
/=相除后再赋值c /= a 等价于 c = c / a
%=求余后再赋值c %= a 等价于 c = c % a

6.3 关系运算符

关系运算的结果是布尔类型的。

运算符术语示例结果
==相等于4 == 3false
!=不等于4 != 3true
<小于4 < 3false
>大于4 > 3true
<=小于等于4 <= 3false
>=大于等于4 >= 1true

6.4 逻辑运算符

  • 有逻辑运算符连接的表达式叫做逻辑表达式
  • 逻辑表达式的结果同样也是bool类型
  • 逻辑运算符两边放的一般都是关系表达式或者bool类型的值
运算符术语示例结果
!!a如果a为假,则!a为真;如果a为真,则!a为假。
&&a && b如果a和b都为真,则结果为真,否则为假。
|a || b如果a和b有一个为真,则结果为真,二者都为假时,结果为假。

6.5 其他运算符

运算符术语示例说明
&取地址运算符(引用运算符)&a变量a的地址
*取值运算符(解引用运算符)*a指针变量a所指向内存的值

6.6 运算符优先级

优先级运算符
特殊运算符() [] .
单目运算符++ -- ! 类型转换(变量)
双目运算符算数运算符
* / %
+ -

关系运算符
== != > < >= <=

逻辑运算符
&&
||

赋值运算符
= += -= *= /= %=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值