golang基础用法

一、基础用法

  1. 基础定义
// 变量
var int i 
i =5 

i :=5 
i, j := 3,"dsafd"

// 常量

const (
i = "adfa"
b = 5
)

// 特殊常量itoa
itoa重新出现表示规0 
后面会自动+1
const (
    Monday = iota // 0
    Tuesday        // 1
    Wednesday      // 2
    Thursday       // 3
    Friday         // 4
    Saturday       // 5
    Sunday         // 6
)

  1. 关键字

switch case
break: 跳出for循环,跳出switch语句

chan :通道类型
defer 函数执行前的最后执行语句
fallthrough : switch case 穿透执行下个case

变量采用驼峰式命名
var numList string

3、字符串
底层是只读的字节数组 所以遍历字符串按坐标取值时,取值的为数组的Unicode字符,还需要转化为string才能作为字符使用,

strconv.Itoa() 数值转化为字符
strconv.FormatFloat() 可以将浮点数转换为字符串。
fmt.Sprintf() 可以使用格式化字符串将其他数据类型转换为字符串。

反过来,字符串也可以通过解析函数将字符串转换为其他数据类型,例如:

strconv.Atoi() 可以将字符串转换为整数。
strconv.ParseFloat() 可以将字符串转换为浮点数。
strconv.ParseBool() 可以将字符串转换为布尔值。

utf-8 表示unicode字符,1-4个字节组成。

内置函数

make 创建切片、map、通道

append 追加切片元素

panic报错,recover 捕获

bit 比特是二进制位,计算机存储的最小单位

byte 字节 – B ,是计算机处理的最小单位 1B = 8bit

1字节= 1B =8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024M
字和字节都是计算机的存储单元,字由若干个字节组成,一个字节8bit,字的位数表示为字长,是cpu一次处理二进制代码的位数,32为机器,一个字就是32位,4个字节, 64位机器,一个字就是64位,一次处理8个字节。

编码:GB2312 、GBK是汉字编码,
ASCII码一共定义了128个字符。 一个汉字占两个字节,一个英文字母占一个字节。
unicode 是ascii 的扩展,双字节编码,英文和中文都为两个字节。

UTF-8编码是一种多字节编码,也是目前互联网应用最广泛的一种Unicode编码方式。最大特点就是可变长,可根据字符的不同变换长度。一个英文字符占用一个字节,一个中文(含繁体)占用三个字节。英文标点占用1个字节,中文标点同样占用3个字节。

字符串:
golang中的字符串底层为byte数组,直接取len,如果有中文的话,则不是字符的长度。 在utf-8中中文占3个字符

所以在获取string的字符的时候,应该先转化为[]rune 数组。 再获取对应的字符。

goroutine

通常使用sync.WaitGroup 来保障主进程等待协程执行完成。

计数器通常在启动go routine 前add 再执行完后释放wg.Done 在主进程wg.Wait

select case 当case条件满足多个的时候,会随机选择case执行,而不是按照顺序

相关推荐

  1. golang基础

    2024-07-15 19:48:03       18 阅读
  2. GoLang语言Map

    2024-07-15 19:48:03       53 阅读
  3. golang os 包

    2024-07-15 19:48:03       63 阅读
  4. 【Redis】基础

    2024-07-15 19:48:03       19 阅读
  5. 【HTML】基础

    2024-07-15 19:48:03       21 阅读
  6. Golang 并发 Channel的

    2024-07-15 19:48:03       31 阅读
  7. golang中fallthrough简介及

    2024-07-15 19:48:03       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 19:48:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 19:48:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 19:48:03       58 阅读
  4. Python语言-面向对象

    2024-07-15 19:48:03       69 阅读

热门阅读

  1. shell脚本传参调用http接口

    2024-07-15 19:48:03       17 阅读
  2. JsonCPP源码分析——分配器和配置器

    2024-07-15 19:48:03       15 阅读
  3. Web开发:<div>标签作用

    2024-07-15 19:48:03       20 阅读
  4. 查找子串方法总结

    2024-07-15 19:48:03       24 阅读
  5. 两个事务update同一条数据会发生什么?

    2024-07-15 19:48:03       22 阅读