当前位置: 首页 > news >正文

祁阳网站设计刷移动关键词优化

祁阳网站设计,刷移动关键词优化,深圳做外贸网站,求有题目做的学习网站demo1:函数的几种定义方式 package mainimport ("errors""fmt" )/* 函数的用法 跟其他语言的区别:支持多个返回值*///函数定义方法1 func add(a, b int) int {return a b }//函数定义方法2 func add2(a, b int) (sun int) {sun a breturn s…

demo1:函数的几种定义方式

package mainimport ("errors""fmt"
)/*
函数的用法
跟其他语言的区别:支持多个返回值*///函数定义方法1
func add(a, b int) int {return a + b
}//函数定义方法2
func add2(a, b int) (sun int) {sun = a + breturn sun
}//函数定义方法3:返回多个值
func div(a, b int) (int, error) {var err errorvar result intif b == 0 {err = errors.New("除数不能为0")} else {result = a / b}return result, err
}func main() {res, err := div(12, 3)if err != nil {fmt.Println(err)} else {fmt.Println(res)}}

demo2: 参数传递的几种方式

package mainimport "fmt"/*
函数的用法
省略号参数用法1:
当有不定个值需要传入函数时,可以使用省略号。省略号参数用法2:
用slice实现*///方法1
func add3(a ...int) (sum int) {for _, v := range a {sum += v}return
}//方法2
func add4(a []int) (sum int) {for _, v := range a {sum += v}a[0] = 9return
}//方法3func main() {/*方法1fmt.Println(add3(1, 2))fmt.Println(add3(1, 2, 3))fmt.Println(add3(1, 2, 3, 4))*//*方法2slice1 := []int{1, 2}fmt.Println(slice1)fmt.Println(add4(slice1))fmt.Println(slice1) //可以发现调用完函数后,slice1的值发生变化,因为传递的是引用类型的参数*/arr := [...]int{1, 2, 3}fmt.Printf("%T", arr) // 数组类型fmt.Println()arr2 := []int{1, 2, 3}fmt.Printf("%T", arr2) // 切片类型}

demo3:函数作为变量的值或参数

1、函数可以当做其他变量的值

2、函数可以作为参数传递给其他函数

package mainimport "fmt"/*
函数的用法
1、函数当做值赋值给其他变量2、函数作为参数传递给其他函数*/type sub func(a, b int) intfunc filter(score []int) []int {res := make([]int, 0)for _, v := range score {if v >= 60 {res = append(res, v)}}return res
}//  将函数作为参数传递给其他函数
func filter2(score []int, f func(int2 int) bool) []int {res := make([]int, 0)for _, v := range score {if f(v) {res = append(res, v)}}return res
}func main() {/*函数当做值赋值给其他变量实现res := func(a, b int) int {return a + b}(1, 2)fmt.Println(res)fmt.Println(res + 3)*/var mySub = func(a, b int) int {return a - b}fmt.Println(mySub(1, 2))score := []int{10, 50, 70, 80, 95}fmt.Println(filter(score))//方法filter2调用fmt.Println(filter2(score, func(a int) bool {if a >= 60 {return true} else {return false}}))}

defer使用

demo

package mainimport "fmt"/*
defer的使用
go语言中,没有try...expect...finally机制,是用defer机制处理
注意:defer之后只能是函数调用,不能是表达式。一些应用的场景:
·文件的打开和关闭
·数据库连接的开启和关闭
·线程锁的获取和释放
·事务锁的添加和释放defer的本质是注册了一个延迟函数,
*/func f() int {x := 10defer func() {fmt.Println(x) //此处的x是外部的x,实际上就是闭包}()x++return 13
}func main() {/*面对异常defer依然执行fmt.Println("test1")defer fmt.Println("defer test")panic("error")fmt.Println("test2")*//*多个defer语句执行顺序是逆序的,遵循先进先出原则fmt.Println("test")defer fmt.Println("defer test1")defer fmt.Println("defer test2")defer fmt.Println("defer test3")*//*最终只会输入结果:test1  因为defer执行时候的拷贝机制test := func() {fmt.Println("test1")}defer test()test = func() {fmt.Println("test2")}*//*下面这段最终输出结果为10而不是11,这跟拷贝机制有关x:=10defer func(a int) {fmt.Println(a)}(x)x++下面这段最终输出结果为11x := 10defer func(a *int) {fmt.Println(*a)}(&x)x++下面这段最终输出结果为11x := 10defer func() {		//匿名函数fmt.Println(x)}()x++*///调用f(),这里输出结果为11,13,说明defer是在return之前执行fmt.Println(f())
}

http://www.ds6.com.cn/news/124235.html

相关文章:

  • 测试网站怎么做的企业qq怎么申请
  • 建设官方网站的好处和坏处贵港seo关键词整站优化
  • 杭州的网站建设公司哪家好下百度安装
  • 名片在哪个网站可以做青岛seo外包公司
  • 网站如何做搜狗搜索引擎外贸网站免费建站
  • 装饰公司网站建站阿里云官网首页
  • 长沙网上商城网站建设方案营销渠道的三个类型
  • 南山网站制作亚马逊跨境电商
  • 北京通州做网站百度官方网
  • 网站先做移动站在做pc站可行吗北京搜索引擎优化经理
  • 网站定位授权开启权限怎么做百度题库
  • 移动端html5模板seo排名如何
  • 如何分析竞争对手的网站武汉楼市最新消息
  • 做网站空间放哪些文件夹12345浏览器
  • 承德网站开发网站制作工具有哪些
  • 国内权重网站排名公司软文
  • Dw怎么做网站往里面加标题和字南京网站设计优化公司
  • 19年做网站免费申请网站com域名
  • 博山政府网站建设哪家好关键词优化是什么工作
  • 短视频素材库大全深圳seo排名哪家好
  • wordpress 标签链接地址seo关键字排名
  • 上海专业网站制作设计公司哪家好怎么开发一个网站
  • 临海企业网站建设公司北京seo主管
  • 自己做的网站如何赚钱厦门seo推广
  • 网站建设公司加盟百度seo权重
  • 开发公司网签操作流程seo标题优化的方法
  • 做网站需要缴什么费用by72777最新域名查询
  • wordpress 点赞 ajax快速优化网站排名的方法
  • 政府在门户网站建设中的作用网站服务器ip地址查询
  • b站推广链接百度提问首页