go基础

1.入门

package main

import "fmt"


# 枚举
package main

import "fmt"

func main() {
	//iota枚举
	//1.iota 常量自动生成器,每个一行,自动增 1
	//2.iota 给常量赋值使用
	//3. iota 遇到 const ,重置为 0
	//4. 可以只写一个
	//5.如果是同一行值都一样
	const (
		a = iota
		b = iota
		c = iota
	)
	fmt.Println("a , b , c" , a ,b ,c)
	fmt.Printf("a = %d, b = %d , c = %d \n", a ,b ,c)

	const (
		d = iota
		e = iota
	)
	fmt.Println("d , e" , d ,e )
	fmt.Printf("d = %d, e = %d \n", d  ,e)

	const (
		a1 = iota
		b1
		c1
	)
	fmt.Printf("a1 = %d ,b1 = %d ,c1 = %d\n", a1, b1, c1)

	const (
		a2 = iota
		a31 , a32 ,a33 = iota, iota , iota
		a4 = iota
	)
	fmt.Printf("a2 = %d, a31 = %d , a32 = %d , a33 = %d , a4 = %d \n" , a2 , a31, a32 ,a33 , a4)

}

 

3.别名

package main

import "fmt"

func main() {
	//类型别名
	type minint int
	var a minint

	fmt.Printf("a is %T\n", a)
}

 

7.break continue

package main

import (
	"fmt"
	"time"
)

func main() {
	var i = 0
	for {
		i++
		time.Sleep(time.Second)

		if i == 5 {
			//break
			continue
		}
		fmt.Println("i =" , i)
	}

}

 

9.函数

package main

import "fmt"

func main() {
	Myfunc01()
	MyFunc02(777, 888)
	MyFunc03()
	MyFunc03(1)
	MyFunc03(1,2,3)

	a := MyFunc04()
	fmt.Println(a)

	a, b ,c := MyFunc05()
	fmt.Println(a ,b ,c)

}
//无参无返回值
func Myfunc01 (){
	a := 666
	fmt.Println("a = ", a)
}
//有参无返回值
func MyFunc02(a , b int){
	fmt.Println("a = ", a , "b = " , b)
}
//不定参数类型 ...type  推荐写法
func MyFunc03(args ...int){
	fmt.Println(args)
	for i := 0; i < len(args); i++{
		fmt.Printf("args[%d] = %d \n", i, args[i])
	}

	for i, data := range args{
		fmt.Printf("args[%d] = %d \n", i, data)
	}
}

//无参有返回值
func MyFunc04() (result int){
	result = 111
	return
}
//无参有多个返回值 推荐写法
func MyFunc05() (a , b , c int){
	a , b ,c = 111,222,333
	return
}

10.

package main

import (
	"fmt"
)
func main(){
	max , min := MaxMin( 10,20)
	fmt.Printf("max = %d , min = %d \n" , max , min)

	a , _ := MaxMin(10, 20)
	fmt.Printf("a = %d \n" ,a)
}
//有参有返回值
func MaxMin(a , b int) (max , min int){
	if a > b {
		max = a
		min = b
	}else {
		max = b
		min = a
	}
	return //有返回值时,必须通过 return 返回
}

11.递归

package main

import (
	"fmt"
)

func main(){
	Test01(5)
	fmt.Println("main")

	Test02 := Test02()
	fmt.Println("Test02 = " , Test02)

	Test03 := Test03(100)
	fmt.Println("Test03 = " , Test03)

	Test04 := Test04(1)
	fmt.Println("Test04 = " , Test04)
}
//递归函数的调用流程
func Test01(a int) {
	if a == 1 {
		fmt.Println("a = ", a)
		return
	}
	Test01(a - 1)
	fmt.Println("a = " , a )
}

// 一般
func Test02 () (sum int){
	for i := 1; i <= 100; i++{
		sum += i
	}
	return
}

//递归累加
func Test03(i int)  int {
	if i == 1 {
		return 1
	}
	return i + Test03(i - 1)
}
func Test04(i int)  int {
	if i == 100 {
		return 100
	}
	return i + Test04(i + 1)
}

12.多态

package main

import (
	"fmt"
)

func main(){
	var result int
	var ftest Ftest
	ftest = Add
	result = ftest(10 , 20)
	fmt.Println("result = " , result)

	ftest = Minus
	result = ftest(10 , 20)
	fmt.Println("result = " , result)
}
// 函数类型 -- 多态
// add
func Add( a ,b int) int{
	return  a + b
}

// Minus
func Minus( a ,b int) int{
	return  a - b
}

// 函数也是一种数据类型,通过 type 给函数起一个名字 ,函数没有名字和 {}
type Ftest func(int , int ) int

13

package main
import (
	"fmt"
	"strconv"
)

func main(){
	var a int = 64
	b := strconv.Itoa(a)
	fmt.Println(b)
}

14.array

package main
import (
	"fmt"
)

func main(){
	var a = [...]int{1,2,39,3,2,1}
	fmt.Println(a)
	num := len(a)
	fmt.Println(num)

	for i := 0 ; i < num ; i++ {
		for j := i +1 ; j < num ; j++ {
			if a[i] > a[j]{
				temp := a[i]
				a[i] = a[j]
				a[j] = temp
			}
		}
	}
	fmt.Println(a)
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值