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返回假

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

相关推荐
gz927cool12 分钟前
大模型做导师之开源项目学习(lightRAG)
学习·开源·mfc
电棍2331 小时前
verilog笔记
笔记·fpga开发
让我安静会1 小时前
Obsidian·Copilot 插件配置(让AI根据Obsidian笔记内容进行对话)
人工智能·笔记·copilot
世事如云有卷舒2 小时前
FreeRTOS学习笔记
笔记·学习
靡不有初1112 小时前
CCF-CSP第18次认证第一题——报数【两个与string相关的函数的使用】
c++·学习·ccfcsp
gu203 小时前
c#编程:学习Linq,重几个简单示例开始
开发语言·学习·c#·linq
小蒜学长4 小时前
医疗报销系统的设计与实现(代码+数据库+LW)
数据库·spring boot·学习·oracle·课程设计
羊小猪~~5 小时前
MYSQL学习笔记(九):MYSQL表的“增删改查”
数据库·笔记·后端·sql·学习·mysql·考研
余多多_zZ5 小时前
鸿蒙初学者学习手册(HarmonyOSNext_API14)_组件截图(@ohos.arkui.componentSnapshot (组件截图) )
学习·华为·harmonyos·鸿蒙·鸿蒙系统
yuanbenshidiaos5 小时前
【数据挖掘】数据仓库
数据仓库·笔记·数据挖掘