Go语言学习心得

一、变量的概念和使用

go语言的特性:

静态语言:强类型语言

    go、java、c++、c#...

动态语言:弱类型语言

JavaScript、ptp、 python、ruby...

 

变量的本质,就是一小块内存,用于存储数据,在程序运行过程中数值可以改变

使用:

step1: 变量的声明,也叫定义

step2: 变量的访问,赋值和取值

//第一种先定义后赋值

var name type

name = name

//第二种:类型推断

var name = "王二狗"

//第三种: 简短声明,省略var

name := "王二狗"

 

二、变量的内存分析和注意事项

1、变量必须先定义才能使用

2、变量的类型和赋值必须一致

3、同一个作用域内,变量名不能冲突

4、简短的定义方式,左边的变量至少有一个是新的

5、简短定义方式不能使用于全局变量的定义

var num int

num = 100

fmt.Printf("num的数值:%d, 地址是%p\n", num, &num)

num = 200

fmt.Printf("num的数值:%d, 地址是%p\n", num, &num)

 

此时num的值被改变,但是对应在计算机中的内存地址没有发生改变

 

三、常量的使用

1、概念:同变量类似,陈那个徐执行过程中数值不能改变

2、语法:

    显式类型定义

    隐式类型定义

3、固定的数值:

100, "abc"

4、一组常量中,如果某个常量没有初始值,默认和上一行一致

const {

    a int = 100

    b

    c string = "ruby"

    d

    e

}

5、枚举类型:使用常量组作为枚举类型,一组相关数值的数据

 

四、ioat关键字

特殊的常量,可以被编译器自动修改的常量

每当定义一个const,ioat的初始值为0

每当定义一个产量,就会自动累加1

直到下一个const常量出现,清零

const {
    a = ioat //0
    b = ioat //1
    c = ioat // 2
}

const {
    d = ioat //0
    e        //1
}


清晰明了简介

const {
    A = ioat //0
    B //1
    C //2
    D = "haha" //ioat = 3
    E //haha ioat = 4
    F = 100 // ioat = 5
    G //100 ioat = 6
    H = ioat //7
    I //ioat 8
}

const {
    J = ioat //0
}

五、基本数据类型

1、布尔类型: bool

    取值:true false 

2、数值类型 :

整数 : int

  有符号:最高位表示符号位,0为正数,1为负数,其余位表示数值

    int8: -128~127

    int16: -32768~32767

    int32: -2147483648~2147483647

    int64:-9223372036854775808~9223372036854775807

  无符号:所有位表示数值

    uint8: 0~255

    uint16: 0~65536

    uint32: 0~4294967295

    uint64: 0~18446744073709551615

byte:uint8

rune: int32

浮点:生活中的小数

float32

float64

复数:complex

3、字符串: string

复合数据类型: array、slice、map、function、pointer、struct、interface、channel...

 

六、字符串型

1、概念:多个byte的集合,理解为一个字符序列

2、语法:使用双引号

    "abc" "ABC" "A"

也可以使用''

3、编码问题

计算机本质识别0和1

A:65 B:66 C:67

a:97

ACSII(美国标准信息交换码)

Unicode编码表:号称统一了全世界

UTF-8、UTF-16、UTF-32...

4、转义字符:\

A:有一些字符,有特殊的作用,可以转义为普通的字符

B:有一些字符,就是一个普通的字符,转义后有特殊的作用,换行等

 

七、基本数据类型的转换

兼容类型可以转换

常数:在有需要的时候,自动转换

变量:需要手动转换

 

八、算术运算符

+,-,*,/,%,++, --

位运算符等等

 

九、键盘输入和打印输出

输出:

    Print() //打印

    Printf() //格式化打印

   Printfln() //打印之后换行

 

格式化打印占位符:

https://studygolang.com/articles/20310

十、切片的语法

var identifier [] type

切片不需要说明长度

或者使用make()函数进行处理, func make(t Type, size ... IntegerType) Type

  第一个参数:类型

    slice、map、chan

第二个参数:长度len

实际存储元素的数量

第三个参数:容量cap

最多能够存储的元素个数

slice的内存分析

1、每一个切片引用了一个底层数组

2、切片本身不存在任何数据,都是这个底层数组存储,所以修改切片也就是修改这个数组中的数据

3、当向切片中添加数据时,使用append(append(s1, elems:6,7,8))如果没有超过容量,直接添加,如果超过容量,自动扩容(成倍增长)

4、切片一旦扩容,就是重新指向一个新的底层数组

 

在已有数组上进行切片使用

a := [10]int{1,2,3,4,5,6,7,8,9,10}
s1 := a[:5]

那么对于的s1的长度为5,容量为10,如果改变s1的内的数值,那么对应的a也会发生改变

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Go语言学习CSDN"指的是在中国最大的IT技术专业社区CSDN上学习Go语言。作为一门新兴的编程语言Go语言由Google开发,具有简洁、高效、强大的特点,广泛应用于网络编程和分布式系统开发。 在CSDN学习Go语言有以下几个好处。首先,CSDN是中国最大的IT技术专业社区,拥有海量的技术文章、教程和学习资料。在CSDN可以找到大量关于Go语言的学习资源,包括入门教程、深入剖析、项目实战等。这些资源可以帮助初学者快速入门,提高学习效率。 其次,CSDN上有活跃的技术社区和问答板块。学习者可以在这里提问、交流和分享经验。在学习Go语言过程中遇到困惑或问题时,可以通过发帖提问获取帮助。也可以浏览他人提问的解答,学习其他人的经验和技巧。 另外,CSDN还有专业的技术博客和技术讲座。在这些博客和讲座中,一些有经验的Go语言开发者会分享自己的实践心得、案例分析和最佳实践,对于学习者来说是很宝贵的学习资源。 最后,CSDN还有一些Go语言的学习社群和论坛。学习者可以加入这些社群,与其他Go语言爱好者一起讨论和学习。这些社群通常有线上和线下的活动,参与其中可以结识更多志同道合的人,扩展自己的人脉和交流圈。 总而言之,在CSDN学习Go语言可以获得丰富的学习资源、交流机会和实践经验,对于快速掌握这门语言非常有帮助。不仅如此,CSDN也是一个互联网技术圈的门户,通过学习Go语言还可以了解其他热门技术和行业趋势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值