go语言总结第二章

var和const :变量和常量的声明

var varName type 或者 varName : = value

package and import: 导入

func: 用于定义函数和方法

return :用于从函数返回

defer someCode :在函数退出之前执行

go : 用于并行

select 用于选择不同类型的通讯

interface 用于定义接口

struct 用于定义抽象数据类型

break、case、continue、for、fallthrough、else、if、switch、

goto、default 流程控制

chan用于channel通讯

type用于声明自定义类型

map用于声明map类型数据

range用于读取slice、map、channel数据
大写,即为public

常量在编译的时候就已经确定,运行时不能改变。

go语言在声明变量时还允许省略掉关键字“var”。而用“:”取代

。eg:count:=10

数据超出取值范围会溢出。如var a int8=127 fmt.Println(a

+1)//这时候输出-128

一般位数比较多的用float64来储存。

byte型和uint8本质是一样的,只是个别名,便于阅读程序。另外要

注意的是要以字符型输出要先转换,字节型数据直接输出为整形
eg:var i,j byte
i=65//转为string(i)输出A
j=‘A‘//直接输出为65

rune和int32本质是一样的,别名,便于阅读。rune是unicode编码

指针变量初始化后的默认值的nil不是null,go中没有null

<<为位运算符,再不溢出的情况下,<<1等于乘以2的一次方,左移10

相当于乘以2的10次方。

&^为标志位清除运算符,如a的二进制为00000110,b的二进制为

00001011,则a&^b=00000100,原理为根据b上1的位置,如果在相同的

位置a为0,则不变,如果为1改变为0,b是5 7 8位为1,a上5位为0,

不变,7位为1,变为0,8位为0,不变,所以结果为00000100

go语言运算在优先级相同时自左向右

go字符串遍历分为字节数遍历和unicode遍历
字节遍历类似for最简单的运用,下面主要看unicode遍历:
eg:str:=“aaaa真好”
for i, ch := range str {
fmt.Printf("str[%d]=%v\n", i, ch)
}/*输出为:
str[0]=97
str[1]=97
str[2]=97
str[3]=97
str[4]=30495
str[7]=22909*/

常量组的初始化
const{
a=100
b
c
}
func main(){
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}//输出为三个100;
原理为如果不提供初始值,将表示使用上行表达式。
但是这种方式只在常量组试用。

枚举:
类似于常量组定义,不同的地方在后面加上 =iota//从0开始
一个例子:
const(
_=iota//忽略掉iota为0的情况
KB float64=1<<(10*iota)
MB
GB
TB

func main(){
fmt.Println(KB)
fmt.Println(MB)
fmt.Println(GB)
fmt.Println(TB)
}//将显示1024 1048576 1073741824 1099511627776表示各单位为多

少byte

bool的初始值为false

complex62和complex128的初始值都为0+0i。

全局变量试用var
局部变量可以省略var

因为go语言是类型安全的语言,所有的类型转换全都是显式的
int——float(float强制转换为int保留整数部分)
string——[]byte
string——[]int

第二章到此结束,主要是够的基本数据类型和定义常量变量。需要特

别注意的是iota和显式转换!
第三章还会再接再厉!

时间: 2024-08-09 10:34:32

go语言总结第二章的相关文章

python语言入门--第二章 类型与操作符

2.1 Python程序结构 Python 可分为模块.语句和对象,程序是由模块组成,模块包含语句,语句生成.处理对象. 2.2 为什么使用内置对象 往往比自己定制的数据结构更有效. 2.3 数字 Python的长整数型(后面跟L或l)可以任意长,可以扩展到内存不允许为止. 普通的整数的精度与C的长整数型一样(至少32位). 八进制和十六进制和C一样,八,0:十六,0x or 0X 复数,实数+虚数J(j),如3+4J Python 特有的部分操作符 x  or y     (只有x为假时,y才

【C Primer Plus笔记】第二章 C语言概述

第二章主要通过分析一个简单的实例来介绍C语言. 一.程序细节内容 1 #include <stdio.h> 此语句的作用相当于在文件中该行所在的位置键入了文件stdio.h的完整内容.实际上是一种剪切和粘贴操作. #include语句是C预处理器指令(preprocessor directive)的一个例子.stdio.h文件作为所有C编译包的一部分提供,它包含了有关输入和输出函数的信息供编译器使用.这个名字代表标准输入输出头文件. 最重要的是头文件中包含了建立最终可执行程序时编译器需要用到的

【C语言探索之旅】 第一部分第四课第二章:变量的世界之变量声明

内容简介 1.课程大纲 2.第一部分第四课第二章:变量的世界之变量声明 3.第一部分第四课第三章预告:变量的世界之显示变量内容 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算符 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理

第二章 Mablab语言基础

第二章 Mablab语言基础 2.1 Matlab的变量与常量 1) input:x=input(‘please enter a numb’) 2) Inf/inf:正无穷大 3) pi:圆周率 4) 默认保留变量:ans 2.2 Matlab的基本数据结构(1) 1) 修改Curent Folder:修改快捷方式的目标属性 2) 向量=数组 3) 行矩阵a=[1 2 3]或a=[1,2,3];列矩阵b=[1 2 3]'或b=[1;2;3] 4) 内置矩阵函数ones(ones(4):4维全1矩

实现 RSA 算法之 C 语言实现(第二章)(老物)

第二章 如何实现应用RSA算法 趁着白天在自家店里的闲暇时间来写写第二章了,假设记住了第一章的各种定理之后,我们又该如何实现RSA密码的加密解密呢?也懒得废话了,直接进入正题吧. 先回顾几个知识点: 1.模运算的性质: 结合律:(a % p * b) % p = (a * b) % p 可知当a == b时,(a % p * a) % p = (a * a) % p 2.欧拉定理 a^φ(n) ≡ 1 (mod n) 3.乘法逆元性质 e * d ≡ 1 (mod n) => e * d ≡ 1

Java图示(第二章 Java语言基础)

Java图示(第二章 Java语言基础) 三个基本部分:一个包声明(package语句).任意数量的引入(import语句).类和接口声明(class和interface语句) 1.包声明—package语句 1)包是类和接口的集合,即类库 2)用类库管理类,方便管理 3)Java类都在类库中 4)只有一条包声明,且为第一条 2.引入语句—import语句 1)import语句在包语句后,所有类或接口前 2)两种形式 (1)import 包名.类名: (2)import 包名*://编译器会识别

R 学习笔记《五》 R语言初学者指南--第二章总结

第二章学习了的R函数: 1 sum                     计算和 sum(x,na.rm=TRUE)  计算向量x中所有数的和,其中排除了NA元素 2 median                 计算中位数           返回一个样本数据中间的那个数  median(x,na.rm=TRUE) 3 max                    计算最大值            max(x,na.rm=TRUE) 4 min                    计算最小

深入浅出Zabbix 3.0 -- 第二章 Zabbix Web操作与定义

第二章  Zabbix Web操作与定义 本章介绍Zabbix 中一些基本概念的定义和web前端页面的操作,包括Zabbix中使用的一些术语的定义,Web页面中用户管理.主机和主机组的管理,以及监控项.模板.触发器.告警的管理和操作,还有Graphs.Screens.Maps及Reports等.通过本章的学习掌握一些基本概念并能够通过Web页面的操作完成对Zabbix的管理. 2.1 定义 hosts(主机) Zabbix中需要监控的服务器.交换机及其他设备我们都统一称作host,这些设备与Za

第二章总结

第二章的知识点我觉得最重要的就是培养初学者的程序意识,要建立起程序化的思维方式.其实这并不简单,在这一周的学习中我逐渐体会到其中的困难之处,这也是每个初学者锁闭学面临的问题.但是在老师的的帮助下,我还是很快的进入到程序思维模式当中.Java是一门面向对象的语言.起初我对这句话并不是很理解,但是一周的学习过后,我渐渐的明白了一点.Java就是通过描述对象的语言.而在描述对象的时候,我们首先得对对象进行分类,这样程序才能对我们描述的对象进行类库的搜索并锁定,这就是数据类型.二数据类型有特别注意的就是