当前位置: 首页 > news >正文

[日常] Go语言圣经--作用域,基础数据类型,整型

go语言圣经-作用域

1.一个声明语句将程序中的实体和一个名字关联,比如一个函数或一个变量

2.一个变量的生命周期是指程序运行时变量存在的有效时间段;声明语句的作用域对应的是一个源代码的文本区域,它是一个编译时的属性

3.句法块是由花括弧所包含;我们可以把块(block)的概念推广到包括其他声明的群组,这些声明在代码中并未显式地使用花括号包裹起来,我们称之为词法块。

4.全局作用域 包级语法域 源文件级的作用域 局部作用域 函数级的作用域

5.从最内层的词法域向全局的作用域查找。内部的会覆盖外部的,如果查找失败,则报告“未声明的名字”这样的错误

6.词法域可以深度嵌套,因此内部的一个声明可能屏蔽外部的声明

7.隐式词法域, 比如:for循环 函数体词法域,一个在for隐式的初始化词法域,一个在for循环体词法域

8.Go语言的习惯是在if中处理错误然后直接返回,这样可以确保正常执行的语句不需要代码缩进。

9.要特别注意短变量声明语句的作用域范围,虽然变量在外部已经声明过,但是:=语句还是将变量重新声明为新的局部变量

避免出现类似潜在的问题,通过单独声明变量,来避免使用:=

 

go语言圣经-基础数据类型

1.基础类型、复合类型、引用类型和接口类型

2.基础类型,包括:数字、字符串和布尔型

3.复合数据类型——数组(§4.1)和结构体(§4.2)

4.引用类型包括指针(§2.3.2)、切片(§4.2))字典(§4.3)、函数(§5)、通道(§8),都是对程序中一个变量或状态的间接引用

 

go语言圣经-整型

1.int8、int16、int32和int64四种截然不同大小的有符号整数类型

2.uint8、uint16、uint32和uint64四种无符号整数类型

3.有符号和无符号整数int和uint;其中int是应用最广泛的数值类型。这两种类型都有同样的大小,32或64bit

4.byte也是uint8类型的等价类型,byte类型一般用于强调数值是一个原始的数据而不是一个小的整数

5.一种无符号的整数类型uintptr,没有指定具体的bit大小但是足以容纳指针

6.bit位操作运算符,& | ^   &^位清空 (AND NOT) <<左移 >>右移

7.使用了Printf函数的%b参数打印二进制格式的数字;其中%08b中08表示打印至少8个字符宽度,不足的前缀部分用0填充

         &^是按位置零  x&^y  按y置零x  ;x^y 异或在 |或的基础上去掉两个都为1的部分

8.倾向于使用有符号的int类型,uint无符号类型比如在循环时条件判断处会出问题

9.无符号数往往只有在位运算或其它特殊的运算场景才会使用

10.类型不匹配的问题,需要显式类型转换,将一个大尺寸的整数类型转为一个小尺寸的整数类型,或者是将一个浮点数转为整数,可能会改变数值或丢失精度

11.整数字面值都可以用以0开始的八进制格式书写,例如0666,用以0x或0X开头的十六进制格式书写,例如0xdeadbeef

%d、%o或%x参数控制输出的进制格式,%之后的[1]副词告诉Printf函数再次使用第一个操作数,%后的#副词告诉Printf在用%o、%x或%X输出时生成0、0x或0X前缀,字符使用%c参数打印,或者是用%q参数打印带单引号的字符

转载于:https://www.cnblogs.com/taoshihan/p/8761292.html

相关文章:

  • Elasticsearch 父子关系维护和检索案例分享
  • Wamp集成环境 添加PHP的新版本
  • 建立私有CA及Nginx绑定SSL加密
  • Vue:替换/合并现有的特性
  • 杨老师课堂之JavaScript案例之自动切换轮播图片
  • 关于Vue.js面试题汇总
  • Android两次后退键退出
  • 敏捷开发与瀑布式开发的区别
  • [转] Webpack的devtool和source maps
  • 数据中心资源向AWS迁移的四大挑战
  • 区块链概况:什么是区块链
  • 二进制数字系统
  • js正则,这点儿就够用了
  • Vue2.0史上最全入坑教程(中)—— 脚手架代码详解
  • “美云启航 智数未来”——美云智数产品发布会圆满召开
  • @angular/forms 源码解析之双向绑定
  • github指令
  • iOS | NSProxy
  • Laravel5.4 Queues队列学习
  • Linux后台研发超实用命令总结
  • rabbitmq延迟消息示例
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 小程序 setData 学问多
  • 一个SAP顾问在美国的这些年
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 一个项目push到多个远程Git仓库
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​iOS安全加固方法及实现
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • $(selector).each()和$.each()的区别
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (三)模仿学习-Action数据的模仿
  • (三)终结任务
  • (推荐)叮当——中文语音对话机器人
  • (转)http协议
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .Net 垃圾回收机制原理(二)
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • [Angular] 笔记 7:模块
  • [Gamma]阶段测试报告
  • [iHooya]2023年1月30日作业解析
  • [JavaEE] 线程与进程的区别详解
  • [javaSE] 看知乎学习工厂模式
  • [KMP求最小循环节][HDU1358][Period]
  • [Linux] Apache的配置与运用
  • [Linux]文件基础-如何管理文件
  • [NLP] LlaMa2模型运行在Mac机器
  • [OC]UILabel 文字长的截断方式
  • [office] 在Excel2010中设定某些单元格数据不参与排序的方法介绍 #其他#知识分享#笔记
  • [Oracle]4--查询操作