go入门知识

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

step1:去https://go.dev下载golang

step2:下载jetbrains的Goland编译器安装的过程会自动帮你配置好环境变量


 

 

一个最简单的go程序

package main


import
(
   "fmt"
)


func  main()
{
     fmt.Printf("Hello World")

}

1.定义变量   var    变量名   变量的数据类型

var  a  int

var  b  int=3

自动初始化整型和浮点型变量的默认值为0,字符串变量的默认值为空字符串,布尔型变量默认为bool,切片、函数、指针变量的默认为nil

不指定变量类型的话编译器会尝试根据等号右边的表达式推导出变量a的类型

var a = 100

批量定义变量

var
   a  int
   b  string
   c  []float
   d  func() bool
   e  struct
   {
      x  int
   }

实际常用的定义变量的方式

test:="Hello World"
a:=1

变量值交换

var  a  int =100;
var  b  int =200;
b,a=a,b

基本类型整型浮点型布尔型字符串,数组

高级类型切片结构体函数map通道


2.数组(很少用数组更多是用切片因为数组的长度是固定的

var  a [3]int
a[0]=1
a[1]=2
a[2]=3


b:=[3]{1,2,3}


var  c[2][3]
for i:=0;i<2;i++
{
   for  j:=0;j<3;j++
   {
      c[i][j]=i+j     
   }
}
var name [3]string
name[0]="xiaohong"
name[1]="xioazhang"
name[2]="xiaoming"


var  name=[3]string{"xiaohong","xiaozhang","xiaoming"}

3. 切片不同于pythongo切片不支持负数索引

s:=make([]string 3)
s[0]="a"
s[1]="b"
s[2]="c"

s=append(s,"d");//向切片追加一个字符串现在切片为[a,b,c,d]
s=append(s,"e","f");//向切片继续追加两个字符串现在切片为[a,b,c,d,e,f]


fmt.Println(s[2:5])//[c,d,e] 所以是左闭右开[2,5
fmt.Println(s[:5])//[a b c d e]
fmt.Println(s[2:])//[c d e f]



也可以在创建切片的时候对切片进行初始化
test:=[]String{"g","o","o',"d"}
fmt.Println(test)



最后介绍一下复制切片
c:=make([]string,len(s))
copy(c,s)

4.map在其他语言中就是哈希表最频繁的数据结构

m:=make(map[string]int)

m["one"]=1
m["two"]=2
fmt.Println(m)  //map[one:1   two:2]
fmt.Println(m["one"])   //1
fmt.Println(m["unknow"])      //0

5.指针

func add1(n int)
{
  n+=2
}


func  add2(n  *int)
{
  *n+=2
}

func main()
{
    n:=5
    add1(n)  
    
    fmt.Println(n)  //n还是5

    add2(&n)

    fmt.Println(n)   //n变成7
}

6.结构体

type user  struct
{
   name  string
   password   string 
}


func  main()
{
  a:=user{name:"wang",password:"1024"}//创建并且初始化结构体

  b:=user{"wang",1024}//另一种创建结构体的方法

  //还可以这么创建
  var  c  user
  c.name="wang"
  c.password="1024"

  fm.Println(a,b,c)      //{wang  1024}  {wang  1024}  {wang  1024}
}

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: go