区块链学习--go语言

区块链学习–go语言

go语言学习第二天
函数格式 func xxx()(){
}
有返回值必须有return(返回值有变量名,直接return就可以)
参数个数不确定 arg …int(不确定参数只能放在最后)
把不定参数传递给其他函数arg[ : ]该方法采取左闭右开
函数类型:

  func add(a int,b int) int{
        return a+b
  }
  func dec(a int,b int) int{
        return a-b
  }
  type funcType func(int,int) int 
  var fTest funcType
  fTest=add
  fTest(20,10)
  fTest=dec
  fTest(20,10)

回调函数:
(注:先有想法后实现,实现多态)

func cala(a int,b int,fTest funcType) int {
        return fTest(a,b)
}
cala(20,10,add)
cala(20,10,dec)

匿名函数:

f1 := func(a int ,b int) int {
     return a+b
}
f1()
type funcType func(int ,int) int
var f2 funcType
f2=f1
f2()

直接运行

max,min:=func(a int ,b int)(max int,min int){
     if a>b {
         max=a
         min=b
     }else{
        max=b
        min=a
     }
     return
}(10,20)

闭包捕获外部函数,以引用的方式捕获外部变量VS函数调用时分配空间用完释放

func test () func() int{ 
     var x int
     return func() int{
           x++
           fmt.Println("X=",x)
           return 
     }
}
type testType func() int
var test02 testType
test02=test()
test02()
test02()

defer:结束前执行(文件关闭,关闭用户连接)
在main函数结束前执行

func main(){
defer fmt.Println("后执行”)
fmt.Println("先执行")
}

获取命令行 import “os”
list :=os.args (字符串列表,获取某一个list[i])
作用域:全局在函数外声明,任何地方可用。局部变量,在函数内或{}内声明,在该对应范围有用
工程管理(封装,重复调用,模块化结构清晰):
src:放置源代码
bin:可执行文件
pkg:平台相关库文件
GOPAHT:导入的包
import:"-fmt"不使用其中函数,只用init()函数
".fmt"调用包省略
“fmt"常用
同一目录不用导入包,不同目录需要导入包,并且函数首字母大写
go env查看路径 改为src所在路径

发布了5 篇原创文章 · 获赞 0 · 访问量 95
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览