一小时捋完GO语法

一小时捋完GO语法

go语言也就是golang,是谷歌发明的一种编程语言,主要特点在于能够快速开发出适应高并发的代码,主要应用在一些云原生环境,比如k8s,gitlab-runner。

本文适用于有点编程语言基础的。可以快速入个门,然后就可以愉快得阅读k8s源代码了。

开发环境

可以参考 centos下VSCode进行GO开发

基础

粗略的扫一遍基本数据结构、运算符、条件、循环、函数、类。有些GO语言特有的先不管,后面慢慢理解。能达到基本的阅读代码水平即可。

  • 关键字:
    • packageimportfuncreturnvarconst
  • 数据类型:
    • boolintstring
  • 运算符:
    • +-*/%++--
  • 关系运算符:
    • ==!=><>=<=
  • 逻辑运算符:
    • &&||!
  • 位运算
    • a = 0011 1100``````b = 0000 1101
    • a&b = 0000 1100
    • a|b = 0011 1101
    • a^b = 0011 0001异或,相异时为1
    • a << 2 = 1111 0000左移
    • a >> 2 = 0000 1111右移
  • 赋值运算,后面几个是位运算的赋值
    • =+=-=*=/=%=&=|=^=<<=>>=
  • 条件语句:
    • if elseswitchselect
  • 循环:
    • for + break + continue + goto
  • 函数格式:
    • func function_name( [parameter_list] ) ( [return_types_list] ) {}
    • 注意可以多返回值
    • 值传递、引用传递
  • 结构体(相当于类)
    • type struct_name struct {}
    • 结构体并不会把函数包含在他的定义中,只需要定义函数时,指定他的结构体就可以。
    • func (struct_var struct_name) function_name( [parameter_list] ) ( [return_types_list] ) {}
  • 接口
    • type interface_name interface {}
    • 如果一个结构体实现了interface中全部的方法,我们认为他实现了这个interface。
    • interface_name val1 = new(struct_name);val1.method1();
  • 变量作用域
    • 全局变量局部变量重名时,优先取局部变量
  • 数组定义
    • var array_name = [size] type_name { var1,var2,var3 }
    • var array_name = [...] type_name { var1,var2,var3 } 自动判断大小
  • 切片
    • 类似数组,但是长度可以自由变化
    • slice_name := array_name[x:y] arr从下标xy-1下的元素创建为一个新的切片
    • make([]T, length, capacity) 创建一个T类型的
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值