gpt4 book ai didi

go - 具有多个返回值的 Const 声明

转载 作者:IT王子 更新时间:2023-10-29 01:17:51 26 4
gpt4 key购买 nike

我想定义一个常量值:

 const var *url.URL = url.Parse("http://yahoo.com/")

我知道我必须完全定义变量及其类型。即我不能只使用“:=”速记。

但是计算函数的返回值同时返回常量和错误。

  var, _ := url.Parse("http://yahoo.com/")

现在如何声明 var 是常量并丢弃这种情况下的错误?

最佳答案

首先,你不需要指定类型,你可以简单地写var foo = <expression> .您需要使用 var 的唯一原因而不是 :=that short variable declarations are only allowed in functions但你在职能之外运作。

其次,您不能对常量值使用函数调用,因为这些值不是常量(必须对函数求值,这违反了 Go 对常量的定义)。另见 the spec on what constants are :

A constant value is represented by a rune, integer, floating-point, imaginary, or string literal, an identifier denoting a constant, a constant expression, a conversion with a result that is a constant, or the result value of some built-in functions such as unsafe.Sizeof applied to any value, cap or len applied to some expressions, real and imag applied to a complex constant and complex applied to numeric constants. The boolean truth values are represented by the predeclared constants true and false. The predeclared identifier iota denotes an integer constant.

这里没有用户定义的函数。

你可以做的是定义一个var ( on play ):

func MustParse(s string) url.URL {
url, err := url.Parse(s)
if err != nil {
panic(err);
}
return *url
}

var foo = MustParse("http://yahoo.com/")

当然你也可以

var foo, _ = url.Parse("foo")

但是有了这个你就看不到你的 URL 是否有误了。

关于go - 具有多个返回值的 Const 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21888721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com