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

apache 多网站c语言做的网站有什么优缺点

apache 多网站,c语言做的网站有什么优缺点,大学生做网站类型,什么网站能免费做简历函数是⼀等公⺠、学习函数式编程、可变参数及 defer - GO语言从入门到实战 函数是⼀等公⺠ 在Go语言中#xff0c;函数可以分配给一个变量#xff0c;可以作为函数的参数#xff0c;也可以作为函数的返回值。这样的行为就可以理解为函数属于一等公民。 与其他主要编程语⾔…函数是⼀等公⺠、学习函数式编程、可变参数及 defer - GO语言从入门到实战 函数是⼀等公⺠ 在Go语言中函数可以分配给一个变量可以作为函数的参数也可以作为函数的返回值。这样的行为就可以理解为函数属于一等公民。 与其他主要编程语⾔的差异 可以有多个返回值与其他一些编程语言不同Go语言中的函数可以返回多个值。这使得函数可以更有效地处理和传递多个结果。例如你可以使用两个变量来接收函数的两个返回值。 package fn_testimport (fmt ) func divideAndRemainder(dividend, divisor int) (int, int) {quotient : dividend / divisorremainder : dividend % divisorreturn quotient, remainder }a, b : divideAndRemainder(10, 3) fmt.Println(a, b) // 输出3 1 所有参数都是值传递在Go语言中函数参数是通过值传递的。当你将一个变量作为参数传递给函数时函数会创建该变量的一个副本而不是直接操作原始变量。这有时会让人产生错觉认为传递的是引用但实际上是值传递。但是对于切片slice、映射map和通道channel这样的引用类型情况会有所不同。它们在函数间传递时会传递引用而不是复制整个数据。这意味着如果你在函数内部修改了这些类型的参数会影响原始变量的值。 package fn_testimport (fmt ) func modifySlice(s []int) {s[0] 100 }nums : []int{1, 2, 3, 4, 5} modifySlice(nums) fmt.Println(nums) // 输出[100 2 3 4 5]函数可以作为变量的值在Go语言中函数可以作为变量保存和使用。这使得你可以将函数作为参数传递给其他函数或者将它们赋值给变量。这在实现高阶函数和函数式编程范式时非常有用。 package fn_testimport (fmt ) func add(a, b int) int {return a b }addition : add // 将函数add赋值给变量addition fmt.Println(addition(2, 3)) // 输出5 函数可以作为参数和返回值和其他编程语言一样Go语言的函数可以作为参数传递给其他函数也可以作为返回值返回。这种能力使得你可以在函数之间传递和返回操作从而增强代码的模块化和复用性。 这些特性使得Go语言的函数比其他许多编程语言更加灵活和强大。 函数可变参数及 defer 可变参数 可变参数允许我们在调用函数时传入任意数量的整数。函数的功能是将所有传入的整数相加然后返回总和。 package mainimport fmtfunc sum(ops ...int) int {s : 0for _, op : range ops {s op}return s }func main() {fmt.Println(sum(1, 2, 3, 4, 5)) // 输出: 15fmt.Println(sum(10, 20, 30)) // 输出: 60 } 在上述例子中sum函数被调用了两次每次都传入了一些整数。第一次传入的整数是1, 2, 3, 4, 5总和是15第二次传入的整数是10, 20, 30总和是60。 defer 函数 defer语句可以用来释放资源、关闭文件、打印日志等它具有很高的灵活性是Go语言中常用的编程技巧之一。使用defer语句需要注意以下几点 defer语句必须放在函数内部多个defer语句的执行顺序是与其压入栈中的顺序相反的defer语句中的变量在执行时会被记录下来而不是在执行时读取defer语句中的函数会在执行时被调用而不是在压入栈时调用。 package mainimport testingfunc TestDefer(t *testing.T) {t.Log(Started)defer func() {t.Log(Clear resources)}()// 其他测试代码 }defer语句位于TestDefer函数的末尾当这个函数执行结束时defer语句中的函数将会被执行打印出Clear resources。 下面提供函数应用的代码案例 package fn_testimport (fmtmath/randtestingtime ) //函数会生成两个随机数一个在0到9之间一个在0到19之间。 func returnMultiValues() (int, int) {return rand.Intn(10), rand.Intn(20) }//函数接受一个函数作为参数返回一个新的函数。新函数会计算传入函数的运行时间并打印出来。 func timeSpent(inner func(op int) int) func(op int) int {return func(n int) int {start : time.Now()ret : inner(n)fmt.Println(time spent:, time.Since(start).Seconds())return ret} }//函数会让程序暂停1秒然后返回传入的运算。 func slowFun(op int) int {time.Sleep(time.Second * 1)return op }//首先调用returnMultiValues函数并打印结果然后创建了一个新的函数tsSF它内部调用了slowFun并打印其运行时间最后调用tsSF函数并打印结果。 func TestFn(t *testing.T) {a, _ : returnMultiValues()t.Log(a)tsSF : timeSpent(slowFun)t.Log(tsSF(10)) }//函数接收任意数量的整数参数并返回它们的和。 func Sum(ops ...int) int {ret : 0for _, op : range ops {ret op}return ret }//函数调用了Sum函数两次分别传入4个和5个整数并打印结果。 func TestVarParam(t *testing.T) {t.Log(Sum(1, 2, 3, 4))t.Log(Sum(1, 2, 3, 4, 5)) }//函数打印Clear resources.。 func Clear() {fmt.Println(Clear resources.) }//首先打印Start然后触发一个panic最后执行defer Clear()清除资源。 func TestDefer(t *testing.T) {defer Clear()fmt.Println(Start)panic(err) //panic是一种用于处理程序错误和异常情况的机制类似于其他语言的异常 } 学习Go语言主要是多练多找些代码段写写不懂可以私聊咨询。 码字不易如果该文章有用请多多关注或者赞赏谢谢 欢迎关注云尔Websites CSDN博客
http://www.dnsts.com.cn/news/75121.html

相关文章:

  • 余杭住房和城乡建设局网站HTML网站制作设计
  • 百度资料怎么做网站如何制作网页插件
  • 网站建设中最基本的决策宜州市住房保障和城乡建设局网站
  • 网站注册建设费用做公众号编辑用什么网站
  • 做网站吧同仁seo排名优化培训
  • 微信小程序打不开什么原因优化网站哪个好
  • 广州模板建站哪家好无锡网站建设wkstt
  • 住房建设危房改造网站杭州做微信网站软件公司
  • 建设部网站资质升级公示十大待遇最好央企
  • 义乌专业做网站的太原 招聘 网站建设 技术经理
  • ip138查询网站网址域名ip手机如何制作链接
  • 无锡专业做网站的自建网站投放广告
  • 昌邑建设网站淘宝电商运营
  • 网站域名登录不了湖北建设厅网站怎么打不开
  • 北京旗网站制作网页设计个人博客模板
  • 适合做资源站wordpress主题scratch编程
  • php网站建设管理教材产品介绍网站设计
  • 举报企业网站用个人信息备案松江网站开发培训班
  • 网站建设开发实训总结用dw做网站 的过程
  • 微信网站建设报价表网站建设上市
  • 易联网站建设上海网站建设网
  • 微信订阅号怎么做网站简单的企业网站php
  • 北京网站建设策划建设公司中国软件公司排名
  • 创建公司网站 教程投放广告
  • 企业网站建设管理视频怎么做网上销售
  • 做烘焙的网站网络推销平台有哪些
  • 吉林省网站建设wordpress登录失败
  • 网站推广昔年下拉微网站备案
  • 网页设计制作网站html代码上海网络优化服务
  • 龙岩市城乡规划建设局网站赣州那里有做网站的公司