go学习笔记

go的for循环语句

有3个不一样的形式

1,和C的一样,只是没有()

for 初始化;循环条件; 赋值表达式 {}

2,仿照C的while

for 循环条件 {}

3, 只是第一种的简化形式

for {}

如果想用 each:range形式 就可以

for key,val:=range map{

......

}

eg:

str :=[]string { "good","good","study"}

for i,s:= range str {

fmt.Printf("第%d的 str的字符串的是%s",i,s)

}

也可以使用 key,_ 或者 _,val 来获取其中的某一个

比如实现一个 1-10的加法运算

sum :=0

for i:=1;i<=10;i++ {

sum+=i

}

这里面的 ( 1;2 ;3 )都是可以选填的,需要就写,不需要可以不写

循环控制语句

1,break 用于跳出xun'huan

2,continue,用于跳出当前的循环语句,进行下一轮循环

3,goto,讲跳转到下一个被标记的语句

go的函数定义

func func_name (参数列表 ) 返回类型 {

}

这里的函数可以返回多个值

func func_name ( para_list) (int ,string ){

var a int

var b string

return a,b

}

变量的作用域

局部变量

它们的作用域只在函数体内,参数和返回值变量也是局部变量。

全局变量

全局变量可以在整个包甚至外部包(被导出后)使用

如果局部和全局变量重名,优先考虑近的局部变量

整型

有符号整型:

int8(-128 ->127)

int16(-32768->32767)

int32(-2,147,483,648->2,147,483,647)

int64(-9,223,372,036,854,775,808->9,223,372,036,854,775,807)

int

:在32位操作系统上使用 32位

:在64位操作系统上使用64位

无符号整数:

uint8(0->255)

uint16(0->65,535)

uint32(0->4,294,967,295)

uint64(0->18,446,744,073,709,551,615)

uint

在32位操作系统上使用32位

在64位操作系统上使用64位

整型之间的数据转换

使用 类型+ ()

var a int8=1

var b int16 = 10

var c int = int(a)+int(b)

注意,如果是位数多向少的转换,容易出现值的失真

整型和字符串的转换

res ,err:= strconv.Itoa(整型) 整型转换为字符串 这里要求是int ,不是其他的int8 什么的

fmt.Println(res,reflect.TypeOf (res))

res1,err:= strconv.Atoi(res) //这里的err表示错误信息

fmt.Println(res1,reflect.TypeOf(res1)) 是字符串转换为整型(必须是数字类型的字符串)

整型的进制转换

strconv.FormatInt(int64(整型),n进制)//这里的整型必须是int64,返回的是string

其他进制转换为整型

strconv.ParseInt(data,n进制,0-64)//把string 类型的data转换为n进制,最后那个是约束范围的,但是返回的仍然是int64

常见的math调用

fmt.PrintIn(math.Abs(-19))// 取绝对值

fmt.Printin(math.Floor(3.12))// 向下取整

fmt.Println(math.ceil(3.14))// 向上取整

fmt.PrintIn(math.Round(3.3478))// 就近取整

fmt.Printin(math.Round(3.5478*100)/100)//保留小数点后两位

fmt.Printn(math.Mod(11,3))//取余数,同11 %3

fmt.Println(math.Pow(2,5))// 计算次方,如:2的5次方

fmt.Println(math.Pow10(2))//计算10次方,如:2的10次方

fmt.Println(math.Max(1,2))// 两个值,取较大值

fmt.Printin(math.Min(l.2))//两个值,取较小值

new

var a *int //初始化了一个指向nil的指针

b:= new (int) //初始化一个指针,并且指向一个分配int类型(初始为0值)

big.Int (超大整型)

var a big.Int //0值的超大整型

var b *big.Int // 指向nil的超大整型指针//很少用

var c new (big.Int) //分配一个超大整型,初始为0,这个c指向这个区域

a.SetInt64(2025) //在a里面存一个2025

a.SetString("20250109",10)//把字符串以10进制存入a

c.SetInt64(2025)

c.SetString("20250109",10)

运算

a1 := new (big.Int)

a2 := new (big.Int)

a1.SetInt64(100)

a2.SetInt64(200)

res:=new (big.Int)

res.Add(a1,a2)//+

res.Sub(a1,a2)//-

res.Mul(a1,a2)//*

res.Div(a1,a2)// 得到商

MOD := new (big.Int)

res.DivMod(a1,a2,MOD)//res记录商,MOD记录余数

因为是指针,可以用 res.Int64/res.String 返回对应内容的类型

可以把声明和赋值合成为一行

a1=big.NewInt()

布尔类型

bool

res.err=strconv(字符串)

如果字符串是1,t,T,true,TRUE,True返回真

0,f,F,false,FALSE,False返回假

其他返回假,同时返回错误信息

相关推荐
大筒木老辈子8 分钟前
Linux笔记---协议定制与序列化/反序列化
网络·笔记
草莓熊Lotso16 分钟前
【C++】递归与迭代:两种编程范式的对比与实践
c语言·开发语言·c++·经验分享·笔记·其他
我爱挣钱我也要早睡!3 小时前
Java 复习笔记
java·开发语言·笔记
知识分享小能手6 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
汇能感知8 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun8 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao8 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾9 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT9 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa9 小时前
HTML和CSS学习
前端·css·学习·html