我是Go编程语言的新手。
我注意到Go中有一些奇怪的地方:我认为它在Python中使用:=
并替代=
了,但是当我=
在Go中使用时,它也是可行的。
:=
和之间有什么区别=
?
=
是分配。有关Go中分配的更多信息:分配
=
和在变量声明中使用:=
时的细微差别=
。
Go中变量声明的一般形式是:
var name type = expression
上面的声明创建一个特定类型的变量,为其添加名称,并设置其初始值。 无论是type
或= expression
可以省略,但不能同时使用。
例如:
var x int = 1
var a int
var b, c, d = 3.14, "stackoverflow", true
:=
被称为short variable declaration
采取形式
name := expression
名称的类型取决于表达式的类型
请注意: :=
是声明,而是=
赋值
因此,简短的变量声明必须声明 至少一个新变量
。这意味着简短的变量声明并不一定要在其左侧声明所有变量,当其中一些变量已在同一词法块中声明后,:=
就像对这些变量的赋值一样
例如:
r := foo() // ok, declare a new variable r
r, m := bar() // ok, declare a new variable m and assign r a new value
r, m := bar2() //compile error: no new variables
此外,:=
可能仅出现在函数内部。在某些情况下,例如“ if”,“ for”或“ switch”语句的初始化程序,它们可用于声明局部临时变量。
更多信息:
变量声明
简短的变量声明
问题内容: 我几天前开始学习golang,发现reflect.Valueof()和Value.Elem()非常令人困惑。这两种功能/方法有什么区别,以及如何正确使用它们? 这两个函数/方法都返回一个值,并根据go doc ValueOf返回一个新的Value,初始化为存储在接口i中的具体值。ValueOf(nil)返回零值。 Elem返回接口v包含的值或指针v指向的值。如果v的种类不是Interf
问题内容: 使用该工具一段时间后,它看起来像: (可选)下载, 编译, 并安装 一个软件,而仅仅是 编译 并安装 它。在这种情况下,为什么该命令被取代而存在? 问题答案: 是本地工作时工作流程的一部分。假设您要使用库,但是由于某些原因需要进行更改。您可以这样做: ,仅下载该文件; 对下载的软件包进行更改; 安装本地版本。 据我知道有没有标志,以表明它应该 不 下载,所以它不能代替在这里。 从头开始
问题内容: 和Go 之间有什么区别? 什么时候使用“他”或“她”? 为什么? 你好 输出是,而缺少,有时我觉得很奇怪。 问题答案: 并且是不同的类型,但是它们可以相互转换: 3。将一个字节的切片转换为字符串类型会产生一个字符串,其连续字节是该切片的元素。 4。将字符串类型的值转换为字节片的类型会产生一个片,其连续元素是字符串的字节。 博客:数组,切片(和字符串):’append’的机制: 字符串实
问题内容: 我一直认为Java 中的运算符用于验证其两个布尔操作数是否均为,并且该&运算符用于对两种整数类型进行按位运算。 最近我知道,也可以使用运算符来验证其两个布尔操作数是否均为,唯一的区别是即使LHS操作数为false,它也会检查RHS操作数。 Java中的运算符是否在内部重载?还是在这背后有其他概念? 问题答案: <-验证两个操作数 <-停止评估第一个操作数是否为false,因为结果为fa
问题内容: JavaScript中的&和&&有什么区别? 示例代码: 似乎&&是一个逻辑上的“和”,如果两个都为true,则总是为我提供第二个值。 但是什么是&? (顺便说一下,&&在Python中似乎是“ and”;&在Python中似乎是&。) 问题答案: 是按位AND 该运算符期望 两个数字 并重新调整一个 数字。 如果它们不是数字,则将其强制转换为数字。 注意: 在Javascript中,
问题内容: 我正在从Spring 2.5迁移到Spring 3。 他们介绍了一些黑魔法。预期仅在servlet配置文件中声明。 在Spring 2.5中,我刚刚使用,并且在分发服务器servlet配置XML中声明了标记,并使用了要扫描的基本包。 所以,我不知道是什么样的区别,并在servlet配置标签和我有什么可以消除在Spring3配置文件? 问题答案: 声明一般注释,比如支持,等等。 声明了注