golang变量2

Posted on 2019-12-04 15:39  大白不白  阅读(84)  评论(0编辑  收藏  举报

fmt方法总结:

    s := "hello,world!"
    fmt.Println(s)
    fmt.Printf("%T\n", s)  // 查看变量的类型
    fmt.Printf("%v\n", s)  // 查看变量的值
    fmt.Printf("%#v\n", s) // 变量的值加引号
    fmt.Printf("%b\n", s)  // 查看二进制

使用··反引号或者反斜杠\\去除特殊含义

字符串常用操作:

len长度
+或者fmt.Sprintf拼接
split分割
contains是否包含
index子串出现的位置
join

   &:获取变量的内存地址

  * :根据内存地址去除地址指向的值

  每个变量都拥有地址,指针的值就是地址

  对变量进行取址操作使用&操作符,可以获得这个变量的指针变量

  指针变量的值是指指针内存地址

  对指针变量进行取值操作使用*操作符,可以获得指针变量指向的原变量的值

  每次获取指针地址都会发生变化

另一种创建指针方法new()

str := new(string)

*str = "qqq"

fmt.PrintIn(*str)

 

变量逃逸分析:

   在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其他变量引用到,这样在该方法执行完毕之后,无法被GC回收,由于其被其他变量引用。

  正常的方法调用中,方法体中创建的对象将在执行完毕之后,回收其中创建的对象,无法回收,就成了逃逸。

  1.如果分配到栈上,待函数返回资源就被回收了

  2.如果分配到堆上,函数返回后交给gc来管理该对象资源

   逃逸分析为了减少GC的压力。

内存分配机制:

内存管理子系统主要由两部分组成:内存分配器和GC,内存分配器主要解决小对象(小于等于32k的对象)分配管理和多线程内存分配。

堆:用来存放被动态分配的内存段,大小不固定,可动态扩张或缩减。

栈:存放程序暂时创建的局部变量,就是函数中大括号{}中定义的局部变量。

 关键字:

break default  func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

 

 

Itoa():整型转字符串

Atoi():字符串转整型

ParseBool() 函数用于将字符串转换为 bool 类型的值,它只能接受 1、0、t、f、T、F、true、false、True、False、TRUE、FALSE,其它的值均返回错误

ParseInt() 函数用于返回字符串表示的整数值(可以包含正负号)

ParseUint() 函数的功能类似于 ParseInt() 函数,但 ParseUint() 函数不接受正负号

ParseFloat() 函数用于将一个表示浮点数的字符串转换为 float 类型

FormatBool() 函数可以一个 bool 类型的值转换为对应的字符串类型

 

 

Copyright © 2024 大白不白
Powered by .NET 8.0 on Kubernetes