go语法

栏目: IT技术 · 发布时间: 4年前

  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.Conn
    var err error
    conn, 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 int
    const (
     sunday weekday = iota
      monday // 1
    )

    无类型常量

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

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

    非本地类型不能定义方法

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

阿里巴巴正传:我们与马云的“一步之遥”

阿里巴巴正传:我们与马云的“一步之遥”

方兴东、刘伟 / 江苏凤凰文艺出版社 / 2015-1 / 45.00

十几年来,方兴东与马云每年一次,老友聚首,开怀畅谈,阿里上市前,作者再次与马云深度对话,阿里上市前的布局,深入探讨了一系列人们关心的话题。 本书忠实记录了阿里壮大、马云封圣的历史。作者通过细致梳理和盘点,对阿里巴巴的15年成长史进行了忠实回顾。从海博翻译社到淘宝网,从淘宝商城到天猫,从支付宝到阿里云计算,从拉来软银的第一笔投资到纽交所上市,作者对其中涉及到的人物、细节都有生动展现;对于马云、......一起来看看 《阿里巴巴正传:我们与马云的“一步之遥”》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具