首页 > 解决方案 > GO 新手,在条件内分配错误

问题描述

下面的代码出现错误,即在条件内分配的 a 和 b 未使用:

    package main

import "fmt"

//FizzBuzz n = 100
// Multiple of 3 output Fizz
//Multiple of 5 output Buzz
//Multiple of 3 and 5, FizzBuzz
func main(){
  for i:=0; i<=100; i++{
    a:= ""
    b:= ""
    if i%3 == 0 {
        a:="Fizz"
    }
    if i%5 == 0{
        b:="Buzz"
        
    }
    
        fmt.Println("number ",i,": ", a , b )

    }
}

谢谢,

标签: go

解决方案


:=在当前范围内创建一个新变量。

a := ""
b := ""
if i%3 == 0 {
    a := "Fizz"  // this creates a new "a", which shadows the outer "a" until the '}'
}

对于你想要的任务=

a:= ""
b:= ""
if i%3 == 0 {
    a = "Fizz"  // the original "a" is re-assigned
}

(同上b


推荐阅读