Go基础语法

发布时间 2023-09-17 19:43:00作者: lwx_R

1.结构

package main  // 声明 main 包,表明当前是一个可执行程序

import "fmt"  // 导入内置 fmt 

func main(){  // main函数,是程序执行的入口
    fmt.Println("Hello World!")  // 在终端打印 Hello World!
}
  • 运行
go run main.go

2.变量常量数据类型

package main
import "fmt" 
var (  // 这种因式分解关键字的写法一般用于声明全局变量
    a int
    b bool
)
func main(){
    /**
		变量 声明必须使用
		var name type / var name1,name2 type
		默认0 false '' 
		以下为nil
	*/
	// var a0 *int
	// var a1 []int
	// var a2 map[string] int
	// var a3 chan int
	// var a4 func(string) int
	// var a5 error // error 是接口
	var s float64
	fmt.Printf("%v",s)

	// 2.声明语句 := 只能用于函数体
	intv := 1
	fmt.Printf("%v", intv)
	// 3.全局变量
	fmt.Println(a,b)
	// 4.值类型 (基本类型)布尔 数字 字符串

	// 5.引用类型 (a) 指针类型(Pointer) 数组类型 
	// 结构化类型(struct)Channel 类型函数类型 切片类型 接口类型(interface)Map 类型


	/* 
		常量
		1.定义 const name [type] =  (type可以省略)
		2.用于枚举
		3.iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
	*/

	// 2.
	const (
		Unknown = 0
		Female = 1
		Male = 2
	)
	println(Unknown,Female)
	// 3.
	const (
		ia = iota   //0
		ib          //1
		ic          //2
		id = "ha"   //独立值,iota += 1
		ie          //"ha"   iota += 1
		fi = 100    //iota +=1
		ig          //100  iota +=1
		ih = iota   //7,恢复计数
		ii          //8
	)
	println(ia,ib,ic,ii)
}

3.语句

package main

func main(){
    //条件
	a := 10
	if a == 100 {
		if a < 10{

		} else {

		}
	} else {

	}

	/** 
		循环
			1.for 
			for init; condition; post {}
			for condition{}
			for {}
			for key,value := range mapName{}
			for _, value := range oldMap
	*/

	// for i := 0; i <= 10; i++{

	// }
	// sum := 1;
	// for ; sum <= 10; {
	// 	sum = sum + sum;
	// }

	// for sum<=10{
	// 	sum = sum + sum;
	// }

	str := []string{"lwx","lwx1"}
	for i,v :=range str {
		println(i , v)
	}

}

4.函数

package main

func main(){
	/**
		func name( [param]) [return type ]{}
	*/

	a := max(1,2)
	println(a)

	b,c :=min(1,2)
	println(b,c)

}

func max(n1, n2 int) int {
	return n1
}

func min(n1, n2 int) (int,int) {
	return n1,n2
}