每天坚持20分钟之go的基本语法

2022-06-29 22:30:54 浏览数 (1)

go的基础

变量

通过英文命名

声明和赋值

var a int

a := 1

建议使用显式声明,这样更加明确

支持多变量类似python

a,b := 1, 2

变量的作用域

全局变量在函数外的变量

局部变量:局部有效,例如函数里面,作用域里面

常量

const 不可变的量

尽量少使用全局变量,使用常量

基本数据类型

数值类型

  • int uint int8 uint8 float32 float64 complex64 complex128 rune 字符类型
  • string rune 布尔类型
  • bool 数组类型
  • array numbers := 2int {11,22}

切片类型

  • slice sl1 := []int{1,2,3,4}

结构体类型

  • type Name struct{}

函数类型

  • var name = func(){}

interface

  • 接口 type Name interface { Say()string Do(int)int }map
  • var map mapstringstring

channel

  • ch1 := make(chan string)

类型转换

标准库strconv了

例如

代码语言:go复制
strconv.Itoa(price)

自定义类型

使用type定义

type A string

var a A = "test"

函数

普通返回

func A(x type)(type1, type2){

}

支持命名返回值

func A(x type)(a type1, b type2){

}

匿名函数

var name = func(){}

流程控制

  • if else if else
  • switch .. case
  • for循环

结构体

代码语言:txt复制
 type Person struct{

 Name string
 Age int
 }

func (p Person) SayHello() {
fmt.Println("hello world!")
}

 p1 := Person{Name:"tom", Age:21}

 p2 := new (Person)

 p2.Name = "tom"

 p2.Age = 31

接口

代码语言:txt复制
type Name interface {

Say()string

Do(int)int


}

0 人点赞