[日常] 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

时间: 2024-08-25 20:12:11

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

[C]基本数据类型:整型(int)用法详解

1.整型int C语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int是整型之一,一般被称为整型.以后,在不产生歧义的情况下,我们把整数类型和int都称为整型. int代表有符号整数,也就是说,用int声明的变量可以是正数,可以是负数,也可以是零,但是只能是整数.标准规定int的最小取值范围是-32767到32767.int的取值范围因机器而异,但是一定要大于或者等于-32767到32767.一般来说,int占用一个字的内存空间.因此,字长为16位(B

GOLANG 基本数据类型 整型

基本数据类型-整型 种类 有符号(负号) int8 int16 int32 int64 无符号(无符号) uint8 uint16 uint32 uint64 架构特定(取决于系统位数) int uint 类型别名 Unicode字符rune类型等价int32 byte等价uint8 特殊类型 uintptr,无符号整型, 由系统决定占用位大小,足够存放指针即可,和C库或者系统接口交互 取值范围 具体类型 取值范围 int8 -128到127 uint8 0到255 int16 -32768到3

[日常] Go语言圣经--复数,布尔值,字符串习题

go语言圣经-复数 1.我们把形如a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位.两种精度的复数类型:complex64和complex128,分别对应float32和float64两种浮点数精度 2.complex函数用于构建复数,real和imag函数分别返回复数的实部和虚部 go语言圣经-布尔型 1.布尔值可以和&&(AND)和||(OR)操作符结合,并且有短路行为 2.&&的优先级比||高 go语言圣经-字符串 1.一个字符串是一

[日常] Go语言圣经--接口约定习题

Go语言圣经-接口1.接口类型是对其它类型行为的抽象和概括2.Go语言中接口类型的独特之处在于它是满足隐式实现的3.Go语言中还存在着另外一种类型:接口类型.接口类型是一种抽象的类型4.一个类型可以自由的使用另一个满足相同接口的类型来进行替换被称作可替换性(LSP里氏替换) 练习 7.1: 使用来自ByteCounter的思路,实现一个针对对单词和行数的计数器.你会发现bufio.ScanWords非常的有用. package main import ( "bufio" "f

MySQL数据类型--整型

整数类型是数据库中最基本的数据类型.标准SQL中支持INTEGER和SMALLINT这两种整数类型.MySQL数据库除了支持这两种类型外,还扩展支持了TINYINT.MEDIUMINT和BIGInT. 各种整数类型的取值范围.存储的字节数.特点. 整型 字节数 无符号数的取值范围 有符号数的取值范围 TINYINT 1 0~255 -128~127 SMALLINT 2 0~65535   -32768~12767 MEDIUMINT 3 0~16777215    -8388608~83886

python02 运算符,基本数据类型,整型,字符串

1.python开发IDE pycharm,python编写工具,, #专业版 #不需要汉化 注册码问题解决 https://www.cnblogs.com/evlon/p/4934705.html整体注释:选中后,ctrl+? 2.运算符 算数运算符   +      -   *   /    %    **(幂)   //(向下取整) 比较运算符  ==      >    <    >=   <=     !=不等于   <>不等于 赋值运算符  =  +=   

python基础一整型、bool、字符串

1整型.bool.字符串 1.整型 --数字(int) ? 用于比较运算的 ? 32位 -2 ** 31 ~ 2 ** 31 -1 ? 64位 -2 ** 63 ~ 2 ** 63 -1 ? 基础运算符:+ - * / // ** % python2 整型 int -- log(长整型) / 获取的是整数 python3 整型 int -- / 获取的是浮点数(小数) 2.进制 ? 二进制 八进制 十进制 十六进制 ? 十进制与二进制转换: ? 十进制->二进制:除二整除取倒余法 ? 二进制->

基础篇-整型转换

源码反码与补码 要理解整形转换规则,先要明白整形在计算机中存储形式. 原码 先说最简单的无符号整数. [0000 0001]原 = 1 [1000 0001]原 = 129 对有符号数来说最高位是符号位,0表示正数,1表示负数. [0000 0001]原 = 1 [1000 0001]原 = -1 所以int8的最大值表示不了129,下面都以有符号数为例. 反码 正数的反码与原码相同,负数的反码与原码的关系是:符号位不变,其他各位按位取反. 无符号位都是正数,略过不讲,这里只说有符号位数. [0

【c语言】把一个长整型给一个字符指针

// 把一个长整型给一个字符指针,修改的时候只修改了一个字节,结果会是一个很大的随机数 // 并不能通过这种方式给长整型赋值1 #include <stdio.h> void VarInit(unsigned char* pucArg) { *pucArg = 1; return; } int main() { unsigned long ulGlobal; VarInit((unsigned char*)&ulGlobal); printf("%lu\n", ul