3

本文介绍了Go语言中defer语句的基本用法及其在资源管理中的应用,并通过两个实例展示了如何使用Go语言创建简单的Web服务器。

go语言defer的使用:Go语言的defer(延迟执行)语句,是在函数结束前执行,而如果在函数中有多个defer语句时,会像一个堆栈一样,先进后出,后进先出。defer语句在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题上很试用。

 

举个defer语句简单的使用如下:

 

package main

 

import "fmt"

func funca()  {

   fmt.Println("test funca")

}

func funcb()  {

   fmt.Println("test funcb")

}

//当funcc执行完,也就是输出test funcc时,才会去调用funca和funcb,而且是先调用funcb

 func funcc()  {

   defer funca()

   defer funcb()

   fmt.Println("test funcc")

   //return

}

func main() {

   funcc()

   //因为defer是在main函数中的,所以要等main函数结束前才执行。

   for i:=0;i<6;i++{

      defer fmt.Println(i)

   }

   fmt.Println("test main func")

}

所以最终输出的结果是

 test funcc

test funcb

test funca

test main func

5

4

3

2

1

0

 

  1. Http协议下的浏览器与服务器的交互

https://blog.youkuaiyun.com/u012058778/article/details/50087389

 

  1. Go语言进行web开发(一) 搭建一个简单的web服务器

https://blog.youkuaiyun.com/thinkerleo1997/article/details/78186777

 

 

方法1:

package main

import (

    "fmt"

    "net/http"

    "log"

)

 

func responseHello(w http.ResponseWriter, r *http.Request){

    //将字符串发送给客户端

    fmt.Fprintf(w, "Hello Golang!")

}

func main(){

    //设置要解析的URL路由

    http.HandleFunc("/", responseHello)

    //设置监听的端口,开始监听

    errInfo := http.ListenAndServe(":8080", nil)

    if errInfo != nil {

        log.Fatal("ListenAndServe: ", errInfo)

    }

}

////////////网页输入:localhost8080

方法2

package main

import (

         "fmt"

         "net/http"

         "strings"

         "log"

)

func sayhelloName(w http.ResponseWriter, r *http.Request) {

         r.ParseForm() //解析参数,默认是不会解析的

         fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息

         fmt.Println("path", r.URL.Path)

         fmt.Println("scheme", r.URL.Scheme)

         fmt.Println(r.Form["url_long"])

         for k, v := range r.Form {

                   fmt.Println("key:", k)

                   fmt.Println("val:", strings.Join(v, ""))

         }

         fmt.Fprintf(w, "Hello go web server") //这个写入到w的是输出到客户端的

}

func main() {

         http.HandleFunc("/.web.go", sayhelloName) //设置访问的路由

         err := http.ListenAndServe(":9090", nil) //设置监听的端口

         if err != nil {

                   log.Fatal("ListenAndServe: ", err)

         }

}

////////////网页输入:localhost9090/.web.go

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值