咨询下:关于输出后不用“”return“”关键字暂停

hellsam · 2021-07-21 14:40:26 · 2790 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-07-21 14:40:26 的主题,其中的信息可能已经有所发展或是发生改变。


func RMsg(w http.ResponseWriter, msg string) {
    w.Write([]byte(msg))
    //return
    // c := make(chan int, 5)
    // c <- 123
    // close(c)
}


funct main(){
     if r.formvalue("test")!="0"{
        RMsg(w,"错误暂停")
        //return    //(除了这加return 有其他办法不用写这个就不往下走吗)
    }

    fmt.pringln(“这里不会跑到到")
}


以上信息  当RMsg直接程序就输出给前端了, 也不会往下走了

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2790 次点击  
加入收藏 微博
11 回复  |  直到 2021-07-25 13:59:24
lysShub
lysShub · #1 · 4年之前

w.Write的w应该是http.Request

hellsam
hellsam · #2 · 4年之前
lysShublysShub #1 回复

w.Write的w应该是http.Request

是 w http.ResponseWriter

zhang-jianqiang
zhang-jianqiang · #3 · 4年之前

这么优雅的return为啥非要不用呢

hellsam
hellsam · #4 · 4年之前

这么优雅的return为啥非要不用呢

和前端交互 判断各种错误返回值,写的多了return也看起来不舒服

zzustu
zzustu · #5 · 4年之前

哈哈,估计是想奇技婬巧走火入魔了; 是时候祭出封存已久的goto大法了,你觉得比return如何

funct main(){
     if xxx() {
        RMsg(w,"错误暂停")
        goto END
    }
    fmt.pringln(“这里不会跑到到")
END:
}
hellsam
hellsam · #6 · 4年之前
zzustuzzustu #5 回复

哈哈,估计是想奇技婬巧走火入魔了; 是时候祭出封存已久的`goto`大法了,你觉得比`return`如何 ```go funct main(){ if xxx() { RMsg(w,"错误暂停") goto END } fmt.pringln(“这里不会跑到到") END: } ```

哈哈 人才, 这样都没法封装。

wuchenghui
wuchenghui · #7 · 4年之前
hellsamhellsam #6 回复

#5楼 @zzustu 哈哈 人才, 这样都没法封装。

c很多时候会这样写

Ca2OH4
Ca2OH4 · #8 · 4年之前

那你试试这样写

return RMsg(w,"错误暂停")
hellsam
hellsam · #9 · 4年之前
Ca2OH4Ca2OH4 #8 回复

那你试试这样写 ```go return RMsg(w,"错误暂停") ```

额 我怎么没想到这个方法,原来解决这个问题如此简单。

zzustu
zzustu · #10 · 4年之前
hellsamhellsam #9 回复

#8楼 @Ca2OH4 额 我怎么没想到这个方法,原来解决这个问题如此简单。

RMsg 没有返回值, return RMsg() 是错误的

hellsam
hellsam · #11 · 4年之前
zzustuzzustu #10 回复

#9楼 @hellsam `RMsg` 没有返回值, `return RMsg()` 是错误的

我改下就行了 已经在使用中了,非常不错 省去了好多行代码,看起来代码清晰多了, 我很多返回值 既要返回前端 也要返回字符串的 函数 这个封装非常方便

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传