2.5 Go 算术运算与变量使用技巧
2024-09-01 05:23:12
变量作用域
简单来说,GO的变量以块为范围;一个if-else的块,就可以包含一个变量的生命周期。变量的声明,要在使用之前。
package main import (
"fmt"
) func main(){
var a int =
var b int = //这行代码为报错“b declared and not used”
fmt.Println(a) //
{
var a int = //块内部的变量作用域会覆盖上级变量的作用域
fmt.Println(a) //
} // a为2的变量作用范围在块结束的时候,也随之结束,所以下面的a==1的结束为true if a == {
var a =
fmt.Println(a) //
}else{
a = //正常
b =
}
}
注意代码报错的部分,说变量b被声明但没有使用,后面的if-else中不是有"b = 11"吗?
var b int = 10 //这行代码为报错“b declared and not used”
这就充分说明了GO的变量作用是按块分区的,并且对变量的检查不包含自己作用范围内的块。
位运算
右移,通常说右移一位相当于除以2,左移一位相当于乘以2,这只是相当;比如下面这个奇数,如果除以2则变成浮点数,就不能再直接赋值于int变量,但实际上可以;
aa :=
if aa>= {
aa = aa>> //
}
fmt.Println(aa)
所以右移就是将数字转换为二进制后,舍弃掉右移的位数,空出来的位数补0.
数字补0
package main import (
"fmt"
) func main(){
n1 :=
ss := fmt.Sprintf("%02d--%2d",n1,n1)
fmt.Println(ss) //01-- 1
}
字符串补0
package main import (
"fmt"
) func main(){
s1 := ""
ss := fmt.Sprintf("%02v--%2v",s1,s1)
fmt.Println(ss) //01-- 1 s1 = "A"
ss = fmt.Sprintf("%016v--%16v",s1,s1)
fmt.Println(ss) //000000000000000A-- A
s1 = "中文"
ss = fmt.Sprintf("%08v",s1)
fmt.Println(ss) //000000中文
}
最新文章
- 控件(弹出类): ToolTip, Popup, PopupMenu
- Android学习笔记——button_activity
- 与你相遇好幸运,MongoDB小技巧
- ASP.NET Core 源码阅读笔记(2) ---Microsoft.Extensions.DependencyInjection生命周期管理
- SRTM数据介绍与说明
- 关于github在mac 10.10上无法提交代码的解决办法---备用
- eclipse sysout快捷输入启用
- Android学习之 AChartEngine 图表绘制
- [译]Java 设计模式之工厂
- [转] MMO即时战斗:地图角色同步管理和防作弊实现
- java集合判断
- Rx 入门指引 (一)
- WebView之js调用Android类的方法传递数据
- 前端框架Bootstrap - 快速搭建网站
- row_number() over()分页查询
- svn的简单学习与日常使用
- systemd service 设置limit,不生效问题
- 深入理解Spring的异步机制
- charles重复发包工具/repeat
- Fiddler Web Debugger是什么?(图文详解)
热门文章
- HUST软工1501-1503班第4周作业成绩公布
- python学习之内部执行流程,内部执行流程,编码(一)
- Eclipse Failed to get the required ADT version number from SDK
- C++11学习笔记之三lamda表达式,std::function, std::bind
- 编写高质量代码改善C#程序的157个建议——建议137:委托和事件类型应添加上级后缀
- 企业搜索引擎开发之连接器connector(十六)
- 阿里云ECS搭建开源跳板机jumpserver无法获取验证邮件的问题及解决办法
- python3操作Excel openpyxl模块的使用
- C#图片缩放平移 —— 从功能分析到编码实现
- WordCloud 简介