GO语言基础语法|青训营笔记

55 阅读3分钟

这是我参与「第五届青训营 」笔记创作活动的第1天

一、本堂课重点内容:

  • 本堂课的知识要点有哪些?

变量,if else,循环,switch,数组,切片,map,range,函数,指针,结构体,结构体方法,错误处理,字符串操作,字符串格式化,JSON,数字信息

二、详细知识点介绍:

  • 本堂课介绍了哪些知识点?

  • 1.变量 定义变量的几种方式

    var age int = 18//定义int
    var a = "string"//定义string
    f := a + "f"//+号拼接
    
    const s string = "constant"//定义常量,自动确定类型
    
  • 2.if else

    if a20//与Java相似,但是if后面没有括号
    
  • 3.循环

    只有for循环

    for i := 0i <= 10i++ {  
         sum += i  
      }
    
  • 4.switch

不需要加break,功能强大,可以case字符串,结构体等等,取代if else

  • 5.数组

    var n [10] int//定义int数组
    

很少用

  • 6.切片

    s := make([]type, len)//type类型,len长度
    s = append(s,"d")//加元素,扩容,赋值
    fmt.Println(s[2:5])//打印第二到第五个元素,不包括第五个
    
  • 7.map

    m := make(map[String] int)//string是key,int是value
    m["one"] = 1//写入
    delete[m,"one"]//删除
    
  • 8.range

遍历map,k是key,v是value

image.png

  • 9.函数

image.png 函数多返回两个值,这里返回String v和bool ok

  • 10.指针

image.png

对常用参数进行修改,运算时要加*号

  • 11.结构体

带类型字段的集合 image.png

image.png

初始化字段

  • 12.结构体方法

    func (u user ) checkPassword( password string ) bool {
    return u.password == password
    }
    

Golang里面可以为结构体去定义一些方法。u user为结构体,引入字符串passworld,返回bool值。在实现结构体的方法的时候也有两种写法,一种是带指针,一种是不带指针。带指针,可以对这个结构体去做修改。不带指针,无法对结构体进行修改。

  • 13.错误处理

    if err != nil {
    fmt.Println( err)return
    }
    

在函数实现的时候, return需要同时returm两个值,出现错误,return error。没有错误, return 结果。

  • 14.字符串操作

contains判断一个字符串里面是否有包含另一个字符串,count字符串计数, index查找某个字符串的位置,join 连接多个字符串,replace替换字符串。

  • 15.字符串格式化

            fmt . Printf( "s=%vin" , s)// s=hello
            fmt. Printf( " n=%vin", n)//n=123
            fmt . Printf( " p=%vin" , p)// p={1 2}
            fmt . Printf( " p=%+vin" , p)// p={x :1 y : 2]
            fmt .Printf( " p=%#vin" , p)// p=main .pointix :l, 2 y:2}
            
    

用%v来打印任意类型的变量,%+v打印详细结果,%#v更详细。

  • 16.JSON

对于一个结构体,使用JSON.marshaler去序列化,变成一个JSON的字符串。

  • 17.数字信息

用parselnt或者parseFloat来将一个字符串转化为int或float。Atoi可以把一个十进制字符串转成数字。itoA可以把数字转成字符串。

三、实践练习例子:

  • 有什么实践举例帮助理解知识点?

猜谜游戏,在线字典,SOCKS5代理

四、课后个人总结:

  • 本章有什么知识点不容易掌握?

go语言的基础知识需要加强记忆,多多实践,要能灵活运用map,range,结构体等常用的语法要能熟练使用

  • 什么地方容易与其他内容混淆?

go语言语法与java用很多地方不同,也用很多类似的地方,比如for循环,go语言中for后面不带括号,java中需要添加括号,但大体实现流程相似。