Go语言实训自学(一)

一 go语言的优势

1 自动垃圾回收:程序员只需把精力集中在程序开发上,不需要担心内存管理。
2 错误处理:全局的错误异常处理,不会导致程序的崩溃。例如java的try-catch.
3 反射:程序运行的过程中可以动态编辑代码。
4 java语言不是底层语言:不可做底层操作,Go语言可以操作底层,连接硬件。
5 支持多返回值:开发效率高,代码简洁。
6) Go语言也是面向对象的语言。
7 并发编程:java和C语言的并发能力很差,Go语言的并发使用协程和管道。能够达到百万级并发,而java只能够达到千级并发。该特点是Go语言独领风骚的核心优势。令人绝望的差距。

二 常量变量和表达式

冒等 := 声明赋值二合一

1 常量: 恒定不变的一块内存。列如:圆周率、地球的重力加速度。
2 变量: 反复擦写的一块内存。未知数x,根据给定的值进行变换。定义变量的时候先写变量名,再写数据类型,类型后置. 如:var x int = 8;
3 表达式:使用运算符和API连接常量和变量的式子。
4 ① 常量变量的可见范围:定义在函数内(局部变量)仅仅当前函数内可见。
② 定义在函数外(全局变量)首字母小写(私有成员):包
内可见,首字母大写(公有成员)所有包可见。
5 占位符,使用占位符需要用printf进行输出打印
%T:类型占位符
%v:值占位符,覆盖所有类型
%c:字符占位符
%d:值占位符,只能覆盖整型
%f:浮点数占位符
%s:字符串占位符
%p:地址占位符,指针占位符。
6 iota定义常量组:iota的初始值为0,下面引用上面的表达式,并逐一递增。
7 浮点型只有两种类型:float32、float64(计算机位数)

三 运算

1 数学运算: 结果是一个值。
2 逻辑运算与比较运算:结果是一个布尔值。
3 定义变量:可以同时定义多个,同时赋值,带var定义,一个或多个,可以声明类型或不声明类型,冒等(:=),一个或多个,只能检测类型。
①、 math.Round(xxx): 四舍五入;
1)纯舍:math.Floor(xxx);比如3.99纯舍后变为3
2)存入:math.Ceil(xxx);比如3.01纯如后变为4
②、 math.Abs(xxx):求绝对值;
③、 math.Pow(x:xx,y=xx):乘方;
④、 math.Sqrt(x:xx,y=xx):开方;
⑤、 math.Pow(x=xx,y=(x.x/x))开n次方;
⑥、 三角函数、sin、cos、tan需要用弧度进行表示;
如:sin 30 = math.Sin((30.0/180)*math.Pi);
cos 60 = math.Cos((60.0/180)*math.Pi);
sin 度数 = math.Sin((度数/180)*math.Pi);
4、位运算符
① 按位与& : 取数值的二进制进行按位与运算获取结果
② 按位或| : 取数值的二进制进行按位或运算获取结果
⑥ 按位异或^: 取数值的二进制进行按异或与运算获取结果
5 移位运算<<或>>:
①无符号为uint,移位运算没有影响,有符号位的话改变了最高位就会变成一个负数,负数是原码的补码,补码是对原码取反加一 。列如:圆周率、地球的重力加速度。
⑥ 移位运算超过边界就直接被丢弃。(二进制)

四 流程控制

1) 顺序结构
2) 选择结构:
if:条件判断处没有括号
①、单分支结构 :if true{语句} {语句}
②、双分支结构 :if true{语句} else{语句}
③、多分支结构 :if true{语句} else if true{语句}… else{语句}(前面的条件都不满足)
switch:
枚举条件case:有明确的条件限制,只有几个孤立的值,条件清晰明了
任意条件case:没有表达式对条件进行限制。
stoconc.Atoi 将数据类型转换为int
fallthrough:继续执行下面的条件,列如最高名次的同学拿到所有等级的奖励。
3) 循环结构:for循环.
①、beake: 退出循环。
②、continue
:退出本次循环,剩下的部分不再进行,进行下一次的循环。
③、return,结束函数
4)goto结构: 标记,设置标记,通过标记跳到任何有对应标记的位置.
5)defer结构: 延时执行
①、defer func (){}()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值