Go语言

Posted xuesu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言相关的知识,希望对你有一定的参考价值。

1. 基本组成
组成元素: 关键字,标识符,常量,字符串,符号

关键字列表:

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

预定义标识符

append;bool;byte;cap;close;complex;complex64;complex128;uint8;uint16;uint32;uint64;uintptr;uint;int8;int16;int32;int64;int;imag;false;true;copy;float32;float64;iota;len;make;new;nil;panic;print;println;real;recover;string;true;

包声明 package main

引用 import "fmt"

函数 

func main(){//注意{不能单独放在一行

    fmt.Println("")//单独语句后面不用加分号,多个语句同一行需要加分号

}

(程序入口点 init函数->main函数)

注释 c++风格

变量命名规则: 大写字母开头对包外可见,小写字母对包外不可见

变量声明: var age int = 0;

3. 运行或构建

go build

go run XX.go

go install XX.go

4. 语言类型

基本类型 bool, int/float/complex/uint, string

特别数字类型: byte, rune(~int32), uintptr(无符号整型,用于存放一个指针)

派生类型

a. 指针 pointer

b. 数组

c. struct

d. channel

e. 函数

f. 切片

g. interface

h. Map类型

5. 变量

a. 变量声明

i. 指定变量类型 var identifier type

ii. 根据值自行判断 var v_name = value

iii. 省略var: v_name := value, 只能在函数体中出现

注意:

var s string

s:="hello world"

错误

var s string

s, s1 := "hello" ,"world"

正确

这说明:= 左侧只需要存在新变量即可

iv. var (

a int

b bool

)

一般用于声明全局变量

package main
import "fmt"
var (
    a int
)
func main(){
    a := "123"
    fmt.Println(a)
}

如果声明一个局部变量却没有使用,会得到编译错误!

b. 值类型,引用类型

基本类型属于值类型

引用类型: &i

c. _ 与python类似

6. 常量

const identifier [type] = value

例如 const b = "abc"

const b string = "abc"

const a, b = 1, 2

常量用作枚举:

const {

   Unknown = 0

   F = 1

   M = 2

}

len(), cap(), unsafe, Sizeof()等内置函数只用常量作参数时得到的结果可以用来给常量赋值

iota在遇到const后自动赋值0,随后const体内每一行常量声明都使iota增加1

package main
import "unsafe"

const (
    z = iota
    a = "a"
    b = len(a)
    c = unsafe.Sizeof(a)
    d
    e = iota
    f

    g = 1<<iota
)
func main(){
     println(z,a,b,c,d,e,f, g)//0 a 1 16 16 5 6 128
}

7 运算符

a. 算数运算符 +-*/%++--

b. 关系运算符 == != > < >= <=

c. 逻辑运算符 && || !

d. 位运算符 & | ^ << >>

e. 赋值运算符 = += -= *= /= %= <<= >>= &= ^= |=

f. &a 返回地址 *a 指针

var p *int

a := 4

p = &a

运算符优先级

^!

* / % << >> & &

+ - | ^

== != < <= >= >

&&

||

8. 条件语句

a. if 布尔表达式 {

XXX

}else{

}

注意: int类型不能直接当表达式内容

b. switch var1 {

case 1:

....

default:

...

}

或者

switch {

case 条件1:

....

default:

...

}

注意 case自带break,要继续执行,需要用fallthrough

switch len(a){
case 1:
switch{
case g > 128:
println(128)
case g > 64:
println(64)
default:
println(g)
}
default:
println("default A")
}

Type Switch

switch x.(type){

    case typeA:

...}

c. select语句-用于通信的switch语句,每个case必须是一个通信操作,发送或者接受。select随机执行一个可以运行的case,如果没有case可运行则将阻塞

 

以上是关于Go语言的主要内容,如果未能解决你的问题,请参考以下文章

Go语言学习——go语言介绍安装运行

Go语言学习之路

2021-GO语言并发编程

2021-GO语言并发编程

golang 目录

Go语言的应用