首页 > 代码库 > Go语言基础

Go语言基础

  • Go语言基础结构
    • 包声明: 必须在源文件非注释的第一行声明文件所属的包
    • 引入包: import " " 在引号中输入需要引用的包
    • 函数: 使用形如func main() 的语法来定义函数, 同时每个可执行文件必须包含一个main函数, 一般来说main()是启动后第一个执行的函数(如果有into()函数则会先执行该函数)
    • 变量: 函数内定义为局部变量, 函数外定义为全局变量, 函数定义为形式变量
    • 语句&表达式
    • 注释: 注释风格与c相同, //用来行注释, /* */用来块注释
  • Go语言关键字

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

布尔型

只能是常量truefalse

2

数字类型

整形int或浮点数float

GO支持整形和浮点数型数字,并且原生支持复数,其中位运算采用补码

3

字符串类型

Go的字符串是由单个字节连接起来的,字节使用UTF-8编码标识的Unicode文本

4

派生类型

  • 指针类型(pointer)
  • 数组类型
  • 结构化类型(struct)
  • Channel类型
  • 函数类型
  • 切片类型
  • 结构类型
  • map类型
  • Go语言变量

var identifier type

  • 变量声明
    • 指定变量类型,若声明后不指定则使用默认值

var v_name v_tpye

v_name = value

  • 根据值自动判定变量类型

var v_name = value

  • 省略var,注意:=左侧的变量必须是未声明过得

v_name := value

   

//例如

var a int = 10

var b = 10

C := 10

  • 多变量声明

//类型相同多个变量, 非全局变量

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

)

  • 赋值

多变量在同一行进行赋值

a, b, c = 5, 7, "abc"

多变量在同一行进行定义

c, d, d = 5, 7, "abc"

  • Go语言常量
    • 常量的定义格式

const identifier [typr] = value

显式类型定义: const b string = "abc"

隐式类型定义: const b = "abc"

  • iota特殊常量

特殊常量,在每一个const关键字出现的时候,被重置为0,然后再在一个const出现之前,每一次出现iota,其所代表的数字都会加1

const (
a = iota
b
c
)

  • Go语言运算符
    • 算数运算符

+

-

*

/

%

++

--

  • 关系运算符

==

!=

>

<

>=

<=

  • 逻辑运算符

&&

||

!

  • 位运算符

&

按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。

(A & B) 结果为 12, 二进制为 0000 1100

|

按位或运算符"|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或

(A | B) 结果为 61, 二进制为 0011 1101

^

按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1

(A ^ B) 结果为 49, 二进制为 0011 0001

<<

左移运算符"<<"是双目运算符。左移n位就是乘以2n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0

A << 2 结果为 240 ,二进制为 1111 0000

>>

右移运算符">>"是双目运算符。右移n位就是除以2n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。

A >> 2 结果为 15 ,二进制为 0000 1111

  • 赋值运算符

=

+=

-=

/=

%=

<<=

>>=

&=

^=

|=

  • 其它运算符

&

返回变量地址

*

指针变量

  • 运算符优先级

7

^ !

6

* / % << >> & &^

5

+ - | ^

4

== != < <= >= >

3

<-

2

&&

1

||

  • 类型转换

    Go语言类型转换的基本格式如下

    tpye_name(expression)

    tpye_neme为类型, expression为表达式

    例如:

    var sum int = 17

    float32(sum)

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

Go语言基础