变量作用域

简单来说,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中文
}

2.5 Go 算术运算与变量使用技巧的更多相关文章

  1. Linux下环境变量设置技巧

    Linux下环境变量设置技巧,不用/etc/profile而是在/etc/profile.d目录下新建特定的shell文件来设置 区别: 1.两个文件都是设置环境变量文件的,/etc/profile是 ...

  2. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  3. shell变量扩展技巧

    SHELL中有一些变量扩展的技巧,做下归纳总结 1.取字符串slice规则一:${变量名:位置起点}含义:由指定的位置起点开始,截取子字符串到字符串结束例如: var="/etc/passw ...

  4. SAP SMARTFORM 变量显示技巧

    &symbol& (括号中,小写字母为变量) &symbol& 屏蔽从第一位开始的N位&symbol (n)&       只显示前N位&sym ...

  5. JAVA关于一些变量的技巧

    如果一个变量的值不变,而且他还要被多次用到 另建一个类,把变量定义到里面   注意  private static      public class JexlConfig {     private ...

  6. Linux下环境变量设置技巧,不用/etc/profile而是在/etc/profile.d目录下新建特定的shell文件来设置

    区别: 1.两个文件都是设置环境变量文件的,/etc/profile是永久性的环境变量,是全局变量,/etc/profile.d/设置所有用户生效,同样是永久变量,是全局变量. 2./etc/prof ...

  7. shell 变量定义技巧总结

    可以多学习和模仿操作系统自带的/etc/init.d/functions函数库脚本的定义思路,多学习Linux系统脚本中的定义,有经验的读者最终应形成一套适合自己的规范和习惯. (1)变量名及变量内容 ...

  8. bash 变量使用技巧

  9. 无法启动 nexus 服务,错误1067:进程意外终止。java环境变量设置技巧。

    Nexus启动失败 wrapper.log记载: 无支持版本 51.0,版本51.0指的是Java1.7. 分析: nexus版本为2.14.8,适用JRE版本为1.7. 已配置JAVA_HOME为1 ...

随机推荐

  1. 'for' loop initial declarations are only allo

    linux系统下的c编程与windows有所不同,如果你在用gcc编译代码的时候提示‘for’ loop initial declarations are only allowed in C99 mo ...

  2. SQL获取本周,上周,本月,上月第一天和最后一天[注:本周从周一到周天]

    DECLARE @ThisWeekStartTime NVARCHAR(100),@ThisWeekEndTime NVARCHAR(100),--本周 @LastWeekStartTime NVAR ...

  3. Statement 接口的应用(存在sql语句的注入风险)

    实现简单的登录功能 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; impo ...

  4. Opengl中的GLUT下的回调函数

    void glutDisplayFunc(void (*func)(void)); 注册当前窗口的显示回调函数 参数: func:形为void func()的函数,完成具体的绘制操作 这个函数告诉GL ...

  5. HashMap的小试牛刀

    HashMap的介绍 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.ut ...

  6. shiro注解@RequiresPermissions多权限任选一参数用法

    @RequiresPermissions(value={"xxx:xxx","xxx:xxx"},logical=Logical.OR)

  7. 27款经典的CSS框架

    利用 CSS 框架,可以简化你的工作,提高工作效率.CSS 框架是一系列 CSS 文件的集合体,包含了基本的元素重置,页面排版.网格布局.表单样式.通用规则等代码块.下面给你推荐了27款优秀的CSS框 ...

  8. C语言编程学习:写的秒速计算四则混合运算项目

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  9. 长按tools Icon 弹出Tips音效

    快速点击,还没弹出tips,bubble音效已播放 在 Widget_ToolsTips 的 OnAwake 函数加一个延时 transform:DOScale(1, 0.1):OnComlete(f ...

  10. Nagios+InfluxDB+Grafana

    1. 概述 Nagios负责收集数据,是一款开源的免费网络监视工具. influxDB负责存储数据,是一个开源的时间序列数据库.比较适合存储监控或者部署记录这些时序数据. Grafana负责数据的图形 ...