Go语言基础(带示例)

都是go语言的基础知识,有编程基础的应该都可以看懂

package main

import "fmt"

func main()  {
	/* 					常量
	iota:特殊常量,可以认为是一个可以编译器修改的常量
	特点:每一个const关键字出现时,被重置为0,然后在下一个const出现之前,
		每次出现iota其所代表的数字就会自动增加1
		const (
			a = iota
			b
			c
			d = "ha"
			f = 100
			h = iota
			g
		)
		fmt.Println(a,b,c,d,f,h,g)
		//0 1 2 ha 100 5 6
	*/

	/*						变量
		计算机语言中存储结果或者表示值的抽象概念,变量可以通过变量名访问
		Go语言变量的规则(var)
		字母,数字,下划线,其中首字母不能为数字
		1、指定一个变量类型,声明后没有赋值使用默认值
			var a  = "Golang"
			var b  = "社区"
			var c bool
			fmt.Println(a,b,c)
			//Golang 社区 false
		2、根据值自动判断变量的类型
		3、多变量的声明
			var name_1,name_2,name_3 int
			var name_1,name_2,name_3  = 1,"22",true
			var(
				var_name_1 int
				var_name_2 string
				var_name_3 bool
			)
	 */
	/*
							运算符
		1、算数运算符
			+	-	*	/	++	--
			var a int = 21
			var b int = 10
			var c int
			c = a+b
			fmt.Println("a+b:",c)
			c = a-b
			fmt.Println("a-b:",c)
		2、关系运算符
			==	!=	>	<	>=	<=
			var a int = 21
			var b int = 10
			if (a>b) {
				fmt.Println(a)
			}else {
				fmt.Println(b)
			}
		3、逻辑运算符
			&&	||	!
		4、位运算符
			&	|	^
		5、赋值运算符
			=	+=	-+	/=	%=
		6、其他运算符
			&
			var a = 0
			&a
	 */

	/*
							条件语句
			if	.else
			if condition{
				true
			}else{
				false
			}
	*/

	/*
				循环语句
			for i:=0;i<100;i++{

			}
			死循环(true可以不写)
			for true{

			}
	 */

	/*
							语言函数
		定义:
			基本代码块,用于执行一个任务
			func func_name(parameter list) return_types{
				//函数体
			}
		例子:
			func main(){
				ret:=Golang(10)
				fmt.Println(ret)
			}
			func Golang(a int) int {
				return a
			}
		规则:
			每个package下面可以有一个main()
		注意点:
			如果项目或者工程执行,最少有一个main()
	 */

	/*
								变量作用就
		概念:已经声明的标识符所表示的常量,类型,变量,函数,包在源代码中的作用范围
		变量:局部变量(函数内定义的变量),全局变量(函数外定义的变量),函数定义中的形式参数(形参)
		注意:形式参数回座位函数的局部变量来使用
	 */

	/*
								数组
		声明数组:var var_name [size]var_type
		取数组的长度:len
		数组初始化: var var_name = [size]var_type{1,2,3,4}
		var Golang = [100]string{"www","Golang","ltd"}
		访问数组:
			方式:通过索引来读取、
					fmt.Println(Golang[0]);
				:循环读取
					for i:=0;i<len(Golang);i++{
						fmt.Println(Golang[i])
					}
			格式:var_name := var_name[0]
	 */

	/*
								指针
		变量是一种使用方便的占位符,用于引用计算机内存的地址
		Go语言中取地址的符号是(&)放到变量前面
		例如:&a	取到a在内存中的地址
		定义:一个指针变量指向的一个值的内存地址,类似变量和常量
		声明:var var_name *var_type
		使用:
			1、定义指针变量
			2、为指针赋值
			3、访问指针变量中指向地址的值
			4、取内存地址中的数据
		例子:
			var a int = 10 //实际变量
			var Golang *int  //指针变量
			Golang = &a		//指针变量的存储地址
			fmt.Println("变量的地址: %x", Golang)
			fmt.Println("变量的值: %x", *Golang)
		空指针:当一个指针被定义后没有分配任何变量时,值为null
	 */

	/*
							结构体
		定义:是由一系列具有相同类型或者不同类型构成的数据集合,结构提表示一项纪录
				type struct_nane struct{
					member1 type1
					member2 type2
					member3 type3
					....
					membern	typen
				}
		赋值:
			type Golang struct {
				ID int
				url string
			}
			func main(){
				var Go Golang
				Go.ID = 101
				Go.url = "www.golang.ltd"
				fmt.Println(Go)
			}
		结构体成员访问:
		1、
			func Run(st_tmp Golang){
				fmt.Println(st_tmp.ID)
			}
			func main(){
				var Go Golang
				Run(Go)
			}
		2、
			func main(){
				var Go Golang
				fmt.Println(Go.ID)
			}

		结构体指针:
			var var_name *struct_name
		如:
			func Run(st_tmp *Golang){
				fmt.Println(st_tmp.ID)
			}
			func main(){
				var Go Golang
				Run(&Go)
			}
	 */

	/*
							切片
		slice 定义:
			对于数组的抽象:数组满足不了需求,申请空间不够大,slice
			1.var var_name []type
			2.var_name []type = make([]type,len)
				var_name := make([]type,len)
		slice初始化:
			Golang :=[]inr{1,2,3}
			fmt.Println(Golang)
		内置函数:len(),append()
			len:
				fmt.Println(len(Golang))
			append:
				Golang = append(Golang,4)
				fmt.Println(Golang)
	 */

	/*
							range
		Range通过for 来循环遍历 array slice channel map
		nums := []int{1,2,3}
		for key,num := range nums {
			fmt.Println(key,num)
		}
		结果:	0 1
				1 2
				2 3
	 */

	/*
							map
		定义:本身是key和value集合
				var map_name map[key_type]value_type
		特点:无序的键值对集合
		map值的存储:
			初始化:Golang = make(map[int]string)
		例子:
			var Golang map[int]string
			Golang = make(map[int]string)
			Golang[1] = "www.Golang.ltd"
			fmt.Println(Golang)
		删除map数据:delete()
			delete(Golang,1)
	 */

	/*
						递归函数
		定义:程序运行时,自己调用自己
		规则:
		func GolangLtd(){
			GolangLtd()
		}
		func main(){
			GolangLtd()
		}
		例子:
			func main(){
				var i uint64  = 15
				ret :=GolangLtd(i)
				fmt.Println("%d 的阶乘是%d",i,ret)
			}
			func GolangLtd(n uint64)(ret uint64)  {
				if n>0{
					ret = n*GolangLtd(n-1)
					return ret
				}
				return 1
			}
	 */

	/*
							接口
		定义:
			type st_name struct{

			}
			type i_name interface{
				method1(param_list)return_ist
				method2(param_list)return_ist
				....
			}
		调用:
			var I_name I_ST
			var ST_name ST_
				I_name = new(ST_name)
				ST_name要求必须实现我们I_ST方法

		拓展:
			func func_name(i interface{}){

			}
	 */
	var igolang Igolang
	igolang = new(STgolang)
	_=igolang
	igolang.GET()
	igolang.POST()
		GolangLtd(102020)
		GolangLtd("www.golang.ltd")
}

//定义接口
type Igolang interface {
	GET()
	POST()
}
//定义结构体
type STgolang struct {

}
//实现方法
func (this *STgolang)GET()  {

}

func (this *STgolang)POST()  {

}
func GolangLtd(i interface{})  {
	_=i
	fmt.Println(i)
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值