为什么 `if` 改变了这个变量的范围
短信预约 -IT技能 免费直播动态提醒
问题内容
如果我有这样的东西
案例1:
if str, err := m.something(); err != nil {
return err
}
fmt.println(str) //str is undefined variable
案例2:
str, err := m.something();
fmt.println(str) //str is ok
我的问题是为什么变量 str
以这样的格式使用时其范围会发生变化
if str, err := m.something(); err != nil {
return err
//str scope ends
}
正确答案
因为 if
语句(以及 for
和 switch
)是隐式块,根据语言规范,:=
用于声明和赋值。如果您希望 str
在 if
之后可用,您可以先声明变量,然后在 if 语句中为其赋值:
var s string
var err error
if str, err = m.something(); err != nil
// ...
以上就是为什么 `if` 改变了这个变量的范围的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
为什么 `if` 改变了这个变量的范围
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
为什么 `if` 改变了这个变量的范围
问题内容如果我有这样的东西案例1:if str, err := m.something(); err != nil {return err}fmt.println(str) //str is undefined variable案
2024-02-06
2024-04-02
一个方法或变量是private属性的访问范围是什么
本篇文章给大家分享的是有关一个方法或变量是private属性的访问范围是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。如果一个方法或变量是private属性,那么它的访问范
2023-06-25
云服务器的ip地址会变嘛为什么改不了
1.云服务器的IP地址云服务器是一种基于云计算技术的虚拟服务器,它可以在云平台上快速创建、部署和管理。在云服务器中,IP地址是服务器与外界通信的重要标识,它可以用来唯一标识一台服务器。2.云服务器IP地址的变化云服务器的IP地址可能会发生变化,这是因为云服务器的IP地址是由云服务提供商动态分配的。当云服务器启动或重启时,它可能会被分配一个新的IP地址。此外,如果云服务提供商需要对网络进行维护或升级,也...
2023-10-27
为什么 Python 中一个线程对共享变量所做的更改对其他线程不可见?
问题内容我尝试在多个线程中使用相同的变量,但该变量的值并未在线程之间一致更新。例如,当线程 1 将变量更新为 1 时,线程 2 无法识别此更改,而是看到旧值。这是一个说明问题的简单代码示例。当用户按下“a”键时,变量“query”应更新
2024-02-06
为什么将两个不同的对象解码为同一个对象,但bool成员却没有改变?
IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天编程网给大家整理了《为什么将两个不同的对象解码为同一个对象,但bool成员却没有改变?》,
2024-04-05
在MySQL中,为什么一个客户端不能使用另一个客户端定义的用户定义变量?
在 MySQL 中,一个客户端定义的用户定义变量不能被另一个客户端看到或使用,因为用户定义变量是特定于连接的。这意味着当客户端退出时,给定客户端连接的所有变量都会自动释放
2023-10-22
在MySQL中,为什么一个客户端不能使用另一个客户端定义的用户定义变量
在MySQL中,每个客户端都有自己的会话空间,用于存储会话变量和用户定义变量。每个客户端之间的会话空间是相互隔离的,因此一个客户端无法直接访问另一个客户端定义的变量。当一个客户端定义一个用户定义变量时,它只能在该客户端的会话中使用和访问这个
2023-10-20