登录
首页 >  Golang >  Go问答

if 语句中的变量范围

来源:Golang技术栈

时间:2023-04-10 14:16:36 404浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《if 语句中的变量范围》,这篇文章主要会讲到golang等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

我今天刚开始学习围棋,并被困在可变范围上。

我最终对如何解决我无法在 if 语句中创建变量并在之后使用它的事实感到困惑。

这是我的代码。问题是 new1 不能在 if 语句之前创建,因为它的大小取决于 if 语句的结果,并且通过在 if 语句中创建它,我不能在 if 语句结束后使用它。

if len(array1)>len(array2) {
    new1 := make([]string,0,len(array1))
    mc := Array2Map_string(array1)
    for _,tok :=range array2 {
        _, ok := mc[tok]
        if ok {
            new1[len(new1)]=tok
            }
        }
    } else {
    new1 := make([]string,0,len(array2))
    mc := Array2Map_string(array2)
    for _,tok :=range array1 {
        _, ok := mc[tok]
        if ok {
            new1[len(new1)]=tok
            }
        }
    }
new2 := make([]string,0,len(new1))
copy(new2, new1)

我唯一能想到的就是做类似的事情

var pointlessvariable uint
if len(array1)>len(array2) {
pointlessvariable=len(array1)
} else {
pointlessvariable=len(array2)
}
var new1 = make([]string,0,pointlessvariable)
if len(array1)>len(array2) {
...

老实说,如果这确实是解决方案,那么我认为我毕竟不想使用 Golang。

那么解决这个问题的最佳方法是什么?

正确答案

您可以在块new1之前声明并在内部使用:if``make

var new1 []string

if len(array1)>len(array2) {
    new1 = make([]string, 0, len(array1))
    // instructions ...
} else {
    new1 = make([]string, 0, len(array2))
    // other instructions ...
}

new2 := make([]string, 0, len(new1))
copy(new2, new1)

今天关于《if 语句中的变量范围》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>