笔记---go入门

go

1. Golang安装

2. Golang语言特性

2.1 优势:

  1. 可直接编译成机器码

  2. 不依赖其他库

  3. 直接运行即可部署

2.2 特点:

  1. 静态类型语言

    1. 编译的时候检查出来隐藏的大多数问题
  2. 天生支持并发

    import(
    	"fmt"
        "time"
    )
    func goFunc(i int){
       fmt.Println("goroutine",i,"...")
    }
    func main(){
        for i := 0; i<10000; i++ {
           //开启10000并发协程
            go goFunc(i) 
        }
    }
    
  3. 高效GC

3. 语法新奇

3.1 Go语法

  1. 编译/执行(终端)

    • 编译配置

      od位置项目位置

    • 编译

      go build xxx.go

    • 运行编译后的exe文件

      。/xxx

    • 直接运行(+编译)

      go run xxx.go

3.1.1 变量
  1. var a int
  2. var a = “xxx”
  3. a := 100 (不能声明全局变量)
  4. 多变量声明
3.1.2常量
  1. const
  2. 枚举iota
3.1.3函数
  1. 多返回值

    // 第一种多返回值(匿名)
    func doubleReturn() (int, int) {
    	return 1, 2
    }
    
    // 第二种多返回值
    func doubleReturn2() (ret1 string, ret2 int) {
    	ret1 = "100"
    	ret2 = 200
    	return
    }
    
    // 第三种多返回值,返回类型相同
    func doubleReturn3() (ret1, ret2 int) {
    	ret1 = 100
    	ret2 = 200
    	return
    }
    
3.1.4函数加载过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5HpdpkSi-1660490632115)(C:\Users\70402\AppData\Roaming\Typora\typora-user-images\image-20220814152119216.png)]

  • init()先于main()方法加载
  • import包饿汉式加载

3.1.5 函数权限

  • 函数名首字母大写—对外暴露(public)
  • 函数名首字母小写—不对外暴露(private)
3.1.6 import别名
import (
    //1.匿名导包,可以不调用,但是会调用init()方法
   _ "project1/init/init1"
    //2.包名赋值,调用时用新赋值的包名
   myLib "project1/init/init2"
    //3.直接将包导入到main包中,使用时可直接用方法名调用
    . "project1/init/init3"
)
3.1.7 defer关键字
  • 在函数执行后最后运行
  • 可以存在多个defer,多个defer存在时遵循栈规则先入后出
  • defer用来修饰函数
  • defer和return同时存在时,return先触发,defer后触发
3.1.8 数组

在这里插入图片描述

4. Golang高级

5. Go moudules模块管理

6. 经典案例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值