zoukankan      html  css  js  c++  java
  • go 基本语法

    ====type====
    
    import (
    	"fmt"
    	)
    
    func main()  {
    	type bigint byte //定义类型
    	var a  bigint
    	fmt.Printf("a type is %T
    ",a)
    	type(
    		long int64
    		char byte
    	)
    	var b char ='a'
        var c long =1000
    
    	fmt.Printf("b=%c,c=%d",b,c)
    
    
    
    
    ========channel========
    package main import ( "time" "fmt" ) func test_channel() { //ch:=make(chan int) ch<-1 ch<-1 fmt.Println("come to end go runtime 1") } var ch chan int func main() { ch =make(chan int,0) go test_channel() time.Sleep(2* time.Second) fmt.Println("runing end") <-ch time.Sleep(time.Second) } =====协程========== package main import ( "fmt" "time" ) func test_Rou(){ fmt.Println("ddd") } func Add (x,y int){ z:=x+y fmt.Println(z) } func main() { go test_Rou() for index := 0; index < 10; index++ { go Add(index,index) } time.Sleep(10) }
    
    
    -----指针----
    package main
    import ("fmt")
    func swap(p1 * int,p2 * int){
       *p1,*p2 =*p2,*p1;
    }
    func main() {
      a :=10;
     var p * int;p=&a;
     fmt.Printf("p=%d,&a=%v,*p=%v
    ",p,&a,*p)
      a,b :=10,20
      swap(&a,&b)
      fmt.Printf("a=%d,b=%d
    ",a,b)
    }
    

      

    --------多维数组------
    package  main
    import (
    	"fmt"
    )
    func main() {
    	//多维数组
     //var a [10] int
     //var b [5] int
      //fmt.Println(a,b);	   
      var c [3][4] int
      k:=0;
      for i:= 0; i<3; i++ {
    	  for j := 0; j <4; j++	{
    		  k++;
    		  c[i][j]=k;
    		  fmt.Printf("a[%d][%d]=%d,
    ",i,j,c[i][j])
    		  //frm.fmt.Println(i,j,a[i][j])
    	  }
       }
    
    }

     

     


     随机数

     产生数据数 

    package main
    
    import (
        "fmt"
        "math/rand"
        "strconv"
        "time"
    )
    
    func main() {
        //设置随机数种子
        rand.Seed(time.Now().UnixNano())
        var captcha string
        for i := 0; i < 6; i++ {
            //产生0到9的整数
            num := rand.Intn(10)
            //将整数转为字符串
            captcha += strconv.Itoa(num)
        }
        fmt.Println(captcha)
    }
    

      

     ---go 回调函数

    package main
    
    import (
    	"fmt"
    )
    
    type FuncType01 func(int,int)int
    
    //回调函数 就是函数有一个参数是函数类型,这个函数就是回调函数
    //fTest FuncType01 多态接口 调用一个接口,可以有不同实现方式
    
    func Calc(a,b int,fTest FuncType01)(result int){ //fTest = Add1
    //  fmt.Println("Calc")
      result = fTest(a,b)
      //result =Add1(3,4)
      return
    }
    
    func Add1(a,b int) int  {
     	return a+b
    }
    
    // func Minus1(a,b int) int  {
    // 	return  a -b
    // }
    
    // func Mul(a,b int) int{
    // 	return  a*b
    // }
    
    func main()  {
    
    	a := Calc(3,4,Add1)
    	fmt.Println("a=",a)
    
    	// a = Calc(7,5,Minus1)
    	// fmt.Println("a=",a)
    
    	// a = Calc(4,3,Mul)
    	//fmt.Println("a=",a)
    
    }
    

    -----闭包及闭包的特点 

    package main
    
    import "fmt"
    
    func main(){
    	 a := 20
    	 str := "aaa"
    
    	 func(){
    	 	//闭包以引用的方式捕获外部变量
    	 	a = 40
    	 	str ="bbb"
    	 	fmt.Printf("a=%d,str=%s
    ",a,str)
    	 }()
    
    	fmt.Printf("a=%d,str=%s
    ",a,str)
    
    }



    package main

    import "fmt"

    func test() func() int {
      var x int //x没有初始化,值为0
      return func() int {
         x++
         return x*x
      }
    }

    func main()  {
      //返回值是一个匿名函数,返回一个函数类型,通过f来调用返回的匿名函数,f来    调用闭包函数
      //f不关心这些捕获的变量和常量是否超出作用范围,只要你的f存在,还在使用x,这个变量x就会一直存在

      f := test()
      fmt.Println(f())
      fmt.Println(f())
      fmt.Println(f())
      fmt.Println(f())

        f = test()

        fmt.Println(f())
    }

    /*
    func test() int  {
        //函数调用时候,x才会分配空间,才初始化为0
        var x int //没有初始化,值为0
        x++
        return x*x //函数调用完毕,x自动释放
    }
    func main(){
        fmt.Println(test())
        fmt.Println(test())
        fmt.Println(test())
        fmt.Println(test())

    }
    */

      

  • 相关阅读:
    Python生成器
    Python迭代器
    Python异常处理
    Python面向对象进阶
    Python面向对象基础
    Python闭包和装饰器
    Python函数
    Python文件操作
    Python深浅拷贝
    Python的列表&元组&字典&集合
  • 原文地址:https://www.cnblogs.com/dqh123/p/12069318.html
Copyright © 2011-2022 走看看