Go 的基本语法

简介: go 的关键字下面列举了 Go 代码中会使用到的 25 个关键字或保留字:break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue for import return var

go 的关键字



下面列举了 Go 代码中会使用到的 25 个关键字或保留字:


break   default func    interface   select


case    defer   go  map struct


chan    else    goto    package switch


const   fallthrough if  range   type


continue    for import  return  var


Go 语言数据类型



1   布尔型


布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。


2   数字类型


整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。


3   字符串类型:


字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。


4   派生类型:


包括:


(a) 指针类型(Pointer)


(b) 数组类型


(c) 结构化类型(struct)


(d) Channel 类型


(e) 函数类型


(f) 切片类型


(g) 接口类型(interface)


(h) Map 类型


Go 语言变量


Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。


声明变量的一般形式是使用 var 关键字:


var identifier type


如果没有初始化,则变量默认为零值。


  • 数值类型(包括complex64/128)为 0


  • 布尔类型为 false


  • 字符串为 ""(空字符串)


以下几种类型为 nil:

var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口


第一种,指定变量类型,如果没有初始化,则变量默认为零值。


第二种,根据值自行判定变量类型。

var v_name = value


第三种,省略 var, 注意 := 左侧如果没有声明新的变量,就产生编译错误,格式:

我们知道可以在变量的初始化时省略变量的类型而由系统自动推断,声明语句写上 var 关键字其实是显得有些多余了,因此我们可以将它们简写为 a := 50 或 b := false。


多变量声明

//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3
var vname1, vname2, vname3 = v1, v2, v3 // 和 python 很像,不需要显示声明类型,自动推断
vname1, vname2, vname3 := v1, v2, v3 // 出现在 := 左侧的变量不应该是已经被声明过的,否则会导致编译错误
// 这种因式分解关键字的写法一般用于声明全局变量
var (
    vname1 v_type1
    vname2 v_type2
)


常量



常量是一个简单值的标识符,在程序运行时,不会被修改的量。


常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。


常量的定义格式:


const identifier [type] = value

你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。
显式类型定义: const b string = "abc"
隐式类型定义: const b = "abc"


常量还可以用作枚举:

const (
    Unknown = 0
    Female = 1
    Male = 2
)


iota


iota,特殊常量,可以认为是一个可以被编译器修改的常量。


iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。


iota 可以被用作枚举值:

const (
    a = iota
    b = iota
    c = iota
)


Go 语言运算符



Go 语言内置的运算符有:


  • 算术运算符


  • 关系运算符


  • 逻辑运算符


  • 位运算符


  • 赋值运算符


  • 其他运算符


下表列出了Go语言的其他运算符。

运算符 描述     实例
&   返回变量存储地址    &a; 将给出变量的实际地址。
*   指针变量。   *a; 是一个指针变量


go官网有一个运行窗口可以在线运行


https://golang.google.cn/


参考


go 中文官网


https://golang.google.cn/



目录
相关文章
|
5月前
|
算法 Go
Go 语言泛型 — 泛型语法与示例
本文详解 Go 语言泛型语法与使用示例,涵盖泛型函数、类型声明、类型约束及实战应用,适合入门学习与开发实践。
|
2月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
200 1
|
人工智能 IDE 程序员
Go 官方宣布不再改进错误处理语法,背后原因是什么?
Go 官方发布了一篇博客文章,正式宣布:他们不会再推进任何新的错误处理语法提案。这也意味着,未来编写 Go 代码时,你依然会频繁地写下那句熟悉的 if err != nil {return err}。
99 0
|
Java 编译器 Go
Go to Learn Go之基础语法
Go to Learn Go之基础语法
134 0
|
存储 Java Go
Go 语言基础之基本语法(2)
Go 语言基础之基本语法
|
Java 编译器 Go
【字节跳动青训营】后端笔记整理-1 | Go语言入门指南:基础语法和常用特性解析(一)
本文主要梳理自第六届字节跳动青训营(后端组)-Go语言原理与实践第一节(王克纯老师主讲)。
510 1
|
编译器 Go
Go 语言基础语法
Go 语言基础语法
210 1
|
存储 Go C语言
【GO基础】GO基础语法一
【GO基础】GO基础语法一
158 2
|
Java Linux Go
一文带你速通Go语言基础语法
本文是关于Go语言的入门介绍,作者因其简洁高效的特性对Go语言情有独钟。文章首先概述了Go语言的优势,包括快速上手、并发编程简单、设计简洁且功能强大,以及丰富的标准库。接着,文章通过示例展示了如何编写和运行Go代码,包括声明包、导入包和输出语句。此外,还介绍了Go的语法基础,如变量类型(数字、字符串、布尔和复数)、变量赋值、类型转换和默认值。文章还涉及条件分支(if和switch)和循环结构(for)。最后,简要提到了Go函数的定义和多返回值特性,以及一些常见的Go命令。作者计划在后续文章中进一步探讨Go语言的其他方面。
488 0
|
编译器 Go 开发者
Go语言语法基础入门
Go语言语法基础入门