阅读 55

golang 快速入门 (1)

go语言快速入门笔记

基础语法

基础结构

package main /*声明一个 main的包 */

import "fmt" /* 导入 fmt 包*/

func main()  {/*主函数入口*/
	fmt.Println("你好 go语言") /*执行fmt包下的println函数输出 你好 go语言*/
}
复制代码

编译方式

以下命令都需要在终端执行
  • go build xxx.go 用于测试编译包,主要检查是否会有编译错误,如果是一个可执行文件的源码(即是 main 包),就会在当前目录直接生成一个可执行文件。
  • go run xxx.go 编译并直接运行程序,它会产生一个临时文件(但实际不存在,也不会生成 .exe 文件),直接在命令行输出程序执行结果,方便用户调试。

注释


/*多行注释(块级注释)*/


//单行注释


复制代码

go语言基础注意点

  • 每条语句的换行都代表当前语句结束,无需分号结尾
  • main函数外只能声明变量不能复制
  • 变量声明后不使用就会报错
  • go fmt xxx.go 可以解决go语句的缩进

go语言关键字

  • var和const :变量和常量的声明
  • var varName type 或者 varName : = value
  • package and import: 导入
  • func: 用于定义函数和方法
  • return :用于从函数返回
  • defer someCode :在函数退出之前执行
  • go : 用于并行
  • select 用于选择不同类型的通讯
  • interface 用于定义接口
  • struct 用于定义抽象数据类型
  • break、case、continue、for、fallthrough、else、if、switch、goto、default 流程控制
  • chan用于channel通讯
  • type用于声明自定义类型
  • map用于声明map类型数据
  • range用于读取slice、map、channel数据

保留字

breakdefaultfuncinterfaceselectcase
defergomapstructchanelse
gotopackageswitchstructconstfallthrough
ifrangetypecontinueforimport
returnvartype

变量声明


package main /*声明一个 main的包 */

import "fmt" /* 导入 fmt 包*/

func main() { /*主函数入口*/

	fmt.Println("你好 go语言") /*执行fmt包下的println函数输出 你好 go语言*/


	//标准声明

	//声明变量并初始化
	var name string = "依风"
	var age string = "19"
	var slogan string = "一篇文章就入门"
	fmt.Println(name,age,slogan)

	//只声明不初始化
	var n string
	var a string
	var s string
	fmt.Printf(n,a,s)
	//批量声明
	var (
		c string
		d string
		e string
		f string
	)
	fmt.Printf(c,d,e,f)

	//同时声明多个变量并初始化,编译器支持类型推导,编译器根据变量初始值推导变量的类型(不用 指定类型例如 var name string 这种方式)
	var name1 ,age1 = "依风666", 19
	fmt.Printf(name1,age1)

	//短变量声明(不支持在main函数以外声明)

	name2:="依风777"
	age2:=19
	fmt.Printf(name2,age2)


	//常量声明(只能声明同时初始化,只能赋值一次)
	const name3 = "依风888"

	fmt.Println(name3)
	


}

复制代码

运算符

算术运算符

+加号
-减号
*乘号
/除号
%求余

package main

import "fmt"
func main()  {
	a:=10
	b:=10

	fmt.Println(a-b,"减法")
	fmt.Println(a+b,"加法")
	fmt.Println(a*b,"乘法")
	fmt.Println(a/b,"除法")
	fmt.Println(a%b,"求余")
}

复制代码

关系运算符


package main

import "fmt"
func main()  {
	a:=10
	b:=10

	//返回值为true 或 false
	fmt.Println(a>=b)
	fmt.Println(a<=b)
	fmt.Println(a==b)
	fmt.Println(a!=b)
	fmt.Println(a>b)
	fmt.Println(a<b)
}

复制代码

逻辑运算符

package main

import "fmt"
func main()  {
	a:=10
	b:=10

	//返回值为true 或 false
	fmt.Println(a>5 && b>20) // 将两个表达式连接成一个。两个表达式必须都为 true,整个表达式才为 true
	fmt.Println(a < 5 || b>20) //将两个表达式连接成一个。必须有一个或两个表达式为 true,才能使整个表达式为 true。只要其中有一个为 true,那么另外一个就变得无关紧要
}

复制代码

赋值运算符


package main

import "fmt"
func main()  {
	a:=10
	b:=10


	a += b // a = a + b 等价关系
	fmt.Println(a)

	a -= b // a = a - b 等价关系
	fmt.Println(a)

	a *= b // a = a * b 等价关系
	fmt.Println(a)

	a /= b // a = a / b 等价关系
	fmt.Println(a)

	a %= b // a = a % b 等价关系
	fmt.Println(a)
}

复制代码

条件循环语句

if语句

package main

import "fmt"
func main()  {

	/*
	
	三种写法
	
	
		if 表达式{
				go语句
			}

		if 表达式{
				go语句
			}else if 表达式 {
				go语句
			}else {
				go语句
			}

		if 表达式{
					go语句
				}else {
					go语句
				}

	*/
	var num = 2
	
	if num > 10{
		fmt.Println("大于")
	}else if num < 10 && num > 5 {
		fmt.Println("小于")
	}else {
		fmt.Println("啥也不是")
	}

	
}

复制代码

for语句



package main

import "fmt"

func main()  {

	/*
	for 变量声明初始化; 表达式 ; 表达式 {
			go语句
		}
	*/
	for i:=0; i < 10; i++ { //i从0开始,当i一直小于10时,就会重复执行花括号里的代码,直到i 不满足条件为止
		//fmt.Println(i)
	}

	for i:=0; i < 10; i++ {
		if i > 3 { //判断 i 是否大于3,大于就停止循环
			break
		}
		fmt.Println(i) // 0 1 2 3
	}

	fmt.Println("————————————————————————————————————")

	for i:=0; i < 10; i++ { //i从0开始,当i一直小于10时,就会重复执行花括号里的代码,直到i 不满足条件为止
		if i == 5 { //判断i是否等于5,等于5就跳过5
			continue
		}
		fmt.Println(i)
	}
}

复制代码

switch语句


package main

import "fmt"

func main()  {
	day:= 2
	switch day { // switch 里的case 匹配到什么就执行cese : 后面的语句,如果都匹配不到就执行default里的代码
	case 1: fmt.Println("周一")
	case 2: fmt.Println("周二")
	case 3: fmt.Println("周三")
	default: fmt.Println("没有这一天")
	}
}

复制代码
文章分类
后端
文章标签