go语法

作者 : 开心源码 本文共1569个字,预计阅读时间需要4分钟 发布时间: 2022-05-13 共173人阅读
  1. 基本类型

    • bool

      优先级:&& > || * > +

      布尔型不可强制转为整型,也不可以转为其余类型

    • string

    • int int8 int16 int32 int64

      Int8(-128 – 127). uint8(0 – 255)

      通常 int 类型的解决速度也是最快的

      0x%x十六进制,%d十进制,

    • uint8 16 32 64 uintptr

      uintptr无符号整数类型,没有指定具体的 bit 大小但是足以容纳指针,uintptr 类型只有在底层编程时才需要,特别是Go语言和C语言函数库或者操作系统接口相交互的地方

      程序逻辑对整型范围没有特殊要求,但是在二进制传输、读写文件的结构形容时,为了保持文件的结构不会受到不同编译目标平台字节长度的影响,不要使用 int 和 uint

    • byte // uint8的别名

    • rune //int32的别名 代表一个unicode码

  • float32 float64

    fmt.Printf("%f\n", math.Pi). fmt.Printf("%.2f", math.Pi)

    • complex64(32位实数和虚数) complex128

      complex128 为复数的默认类型,name := complex(x, y) x为实部,y为虚部

      real(z)获取实部 imag(z) 获取虚部

  1. 申明 标准格式 批量格式 简短格式

    :=公告时左值变量必需是没有定义的变量

    var conn net.Connvar err errorconn, err = net.Dial("tcp", "127.0.0.1:8080")// 在多个短变量公告和赋值中,至少有一个新公告的变量出现在左值中,即使其余变量名重复公告的,编译器也不会报错conn, err = net.Dial("tcp", "127.0.0.1:8080")conn2, err = net.Dial("tcp", "127.0.0.1:8080")
  2. 匿名变量

    不占用内存空间,也不会分配内存,匿名变量与匿名变量之间也不会由于屡次公告而无法使用。

    func getData() (int, int) {  return 1, 2}func main() {  a, _ := getData()  _, b := getData()  fmt.Println(a, b) // 1,2}
  3. 变量的作用域

    • 局部变量

      局部变量名和全局变量名可以相同,局部变量名优先级更高

    • 全局变量

      全局变量公告必需以var关键字开头,假如想要在外部包中使用全局变量的首字母必需大写

    • 形式参数

      只在函数调用时生效,调用结束时销毁,未被调用时,行参不占用实际的存储单元,也没有实际值

  4. go语言指针

    go具备控制数据结构指针的能力,但是却不能进行指针运算。

    指针在golang中可以分为两个核心概念:

    • 类型指针:可以对这个指针类型的数据进行数据,也可以使用指针传递数据,而无需拷贝数据,但不能进行偏移和运算。
    • 切片,由指向起始元素的原始指针、元素数量和容量组成

    比照C语言的指针,指针是其保持高性能的根本所在,在操作大数据块时方便快捷,故此是操作系统使用的是C及其指针特性编写。

    使用new()关键字也可以创立指针,创立过程会分配内存,被创立的指针指向默认值。

  5. go语言变量的生命周期

    堆:存放进程执行中被动态分配的内存段,大小不固定

    栈:也即堆栈,用来存放程序暂时创立的局部变量,如函数大括号内的变量。

  6. go常量

    const (  a = .12   b = 123   ) // 公告多个常量

    iota常量生成器

    type weekday intconst ( sunday weekday = iota  monday // 1)

    无类型常量

    var x float32 = math.Pi// math.Pi 无类型的浮点数常量,可以直接用于任意需要浮点数或者复数的地方
  7. 类型别名

    // 类型别名和类型定义type IntAlias = int // 给int取IntAlias的别名type newInt int // 公告newInt为int类型

    非本地类型不能定义方法

    在结构体成员嵌入时使用别名

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » go语法

发表回复