Go 向函数传递指针参数

  • Go 语言允许向函数传递指针,只需要在函数定义的参数上设置为指针类型即可

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    package main

    import "fmt"

    func main() {
    /* 定义局部变量 */
    var a int = 100
    var b int = 200

    fmt.Printf("交换前 a 的值 : %d\n", a)
    fmt.Printf("交换前 b 的值 : %d\n", b)

    /* 调用函数用于交换值
    * &a 指向 a 变量的地址
    * &b 指向 b 变量的地址
    */
    swap(&a, &b)

    fmt.Printf("交换后 a 的值 : %d\n", a)
    fmt.Printf("交换后 b 的值 : %d\n", b)
    }

    func swap(x *int, y *int) {
    var temp int
    temp = *x /* 保存 x 地址的值 */
    *x = *y /* 将 y 赋值给 x */
    *y = temp /* 将 temp 赋值给 y */
    }
    输出结果:

    交换前 a 的值 : 100
    交换前 b 的值 : 200
    交换后 a 的值 : 200
    交换后 b 的值 : 100
go

数据类型转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   通过类型前置加一个圆括号
T(表达式)
T表示要转化的类型,表达式包括:变量,数值,函数返回值等
int(8.2)
int(80.5)
布尔型无法与其他类型转换

int转换为string OK
string转换为int NO


eg:
chinese := 90
english := 90.9
result := string(chinese)

fmt.Println(chinese,english,result)

90 90.9 Z
go

请关注我的个人博客

Go开发入门

变量的定义,赋值

变量声明:Go的变量名首字母不能为数字

  • 未初始化的变量声明:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
       var 变量名 变量类型
    var a int // 声明 int 类型的变量
    var b [10] int // 声明 int 类型数组
    var c []int // 声明 int 类型的切片 [] 内赋初值是数组,不赋值是切片
    var d *int // 声明 int 类型的指针
    打印结果为

    //a={0},b={[0 0 0 0 0 0 0 0 0 0]},c={[]},d={<nil>}

    那么未初始化的变量默认值为:

    整型和浮点型变量: 0
    字符串: 0
    布尔: false
    函数,指针: nil

redis基本数据结构

Redis使用的是自己构建的简单动态字符串(SDS)[simple dynamic string,SDS]的抽象类型,并将SDS用做Rdis的默认字符串表示

1
2
redis> SET msg "hello"
Ok

redis的Key-Value的存储方式

key是一个字符串对象,对象的底层实现是一个保存着字符串"msg"的SDS
value也是一个字符串对象,对象的底层实现是一个保存着字符串"hello"的SDS

SDS除了用来保存数据库中的字符串值之外,还被用作缓冲区(Buffer):AOF模块中的AOF缓冲区

配置用户名和邮箱

在随便一个文件夹空白处右击 点击 Git Bash Here
初次安装git配置用户名和邮箱


$ git config --global user.name "yiming.liang"
$ git config --global user.email "18135479521@163.com"
注意:(引号内请输入你自己设置的名字,和你自己的邮箱)此用户名和邮箱是git提交代码时用来显示你身份和联系方式的,并不是github用户名和邮箱
git

awk

awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value
'  '          引用代码块
BEGIN   初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
//           匹配代码块,可以是字符串或正则表达式
{}           命令代码块,包含一条或多条命令
;          多条命令使用分号分隔
END      结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量为 次 。
Copyright 2018-2019 YMLiang'BLOG   |   京ICP备 - 19039949  |  载入天数...载入时分秒...