go学习笔记

打印 上一主题 下一主题

主题 792|帖子 792|积分 2376

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返回假
  其他返回假,同时返回错误信息
  
















免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表