小编Ent*_*Zha的帖子

Go:为新旧变量分配多个返回值函数

在go中有返回两个值或更多值的函数,通常一个是错误.假设我想将第一个返回值存储到已经初始化的变量中,但我想初始化变量以包含内联错误.有没有办法做到这一点?

例如,假设我有这个代码

var a int
//This code doesn't compile because err doesn't exist
a, err = SomeFuncWithTwoReturnValues()
//This code doesn't compile either
a, err := SomeFuncWithTwoReturnValues()
Run Code Online (Sandbox Code Playgroud)

我知道你可以做到这一点,但我希望有一种方法可以全部内联

var a int
var err error
a, err = SomeFuncWithTwoReturnValues()
Run Code Online (Sandbox Code Playgroud)

要么

a, err := SomeFuncWithTwoReturnValues()
Run Code Online (Sandbox Code Playgroud)

编辑:上面的代码实际编译,所以我回顾了我的代码,深入了解并创建了一个实际复制问题的快速示例(不仅仅是在我的脑海里......).

package main

func myfunc() (int, int) {
    return 1, 1
}

func main() {
    a := make([]int, 1)
    a[0], b := myfunc()
    a[0] = b
}
Run Code Online (Sandbox Code Playgroud)

编译说main.go|9| non-name a[0] on left side of :=.如果我做它= …

go

19
推荐指数
2
解决办法
4926
查看次数

Vim:双输入后删除注释字符

在Vim中,我喜欢这个功能,允许您在启动注释块后自动插入注释.你怎么做才能在换行符之后得到一个评论字符,但是在获得第二个换行符时,评论被删除,你开始一个没有评论字符的换行符.如果您正在处理注释块并且之后不想再发表评论(在我的情况下我也想将相同的内容应用于markdown列表,将*/ - 视为注释字符),这将非常有用.

例如

// typing a comment
// (cursor here after hitting enter once)
Run Code Online (Sandbox Code Playgroud)

// typing a comment

(cursor here after hitting enter twice)
Run Code Online (Sandbox Code Playgroud)

vim

8
推荐指数
1
解决办法
140
查看次数

Golang http 获取空response.Body

我遇到一个问题,对于某些 url,Golang 中的代码无法检索预期的内容。我没有发布实际的网址,但它具有这种形式,并且是谷歌驱动器文件下载的链接https://docs.google.com/uc?id=somelongid&export=download。如果我使用 wget 来获取文件,它工作正常。我也有使用的 ruby​​ 代码open()并且它也可以工作。由于某种原因,Golang 返回一个空缓冲区并且没有错误。如果我使用此代码来获取一些“普通”url(例如静态网站),它会按预期工作并返回非空response.Body。下面是我从项目中提取的代码,以简化和缩小问题可能出现的范围。下面是输出。

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    resp, err := http.Get("myurlishere")
    if err != nil {
        fmt.Println("Something went wrong")
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    fmt.Printf("Body: %v\n", body)
    fmt.Printf("Error: %v\n", err)
}
Run Code Online (Sandbox Code Playgroud)

输出

$go run main.go
Body: []
Error: <nil>
Run Code Online (Sandbox Code Playgroud)

http go web google-drive-api

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

go ×2

google-drive-api ×1

http ×1

vim ×1

web ×1