2016-07-17 3 views
0

Я новичок в языке Go и хочу узнать основные основные здесь ниже. проблема в этом примере заключается в том, что я не могу получить доступ к переменной номер внутри цикла. он показывает эту ошибкупеременная область в golang

"номер объявленную и не использовать"

. Пожалуйста, помогите мне :(

package main 
import(
    "fmt" 
) 

func main() {  
    samlestNumber() 
} 

func samlestNumber() { 
    x := []int{ 
     48,96,86,68, 
     57,82,63,70, 
     37,34,83,27, 
     19,97, 9,17, 
    } 

    //x = append(x,6,7) 
    var number int = x[0] 
    for _,element := range x { 

     if element < x[0] { 
      number = element 
     }  
     fmt.Println(" :::: ",element)  
    } 
} 

ответ

0

Это потому, что вы только декларирование и присвоения значений number. Вы никогда не реально использовать его в любом месте (т.е. относящееся к значению оно имеет место в любом случае). В вас коде, можно безопасно удалить number декларацию и number = x[0] и она не изменит поведение программы

правильная реализация однако будет возвращать наименьшее число из функции:.

package main 
import(
    "fmt" 
) 

func main() { 
    n := samlestNumber() 
    fmt.Println("Smallest Number =", n) 
} 

func samlestNumber() int { // add a return type 
    x := []int{ 
     48,96,86,68, 
     57,82,63,70, 
     37,34,83,27, 
     19,97, 9,17, 
    } 

    //x = append(x,6,7) 
    var number int = x[0] 
    for _,element := range x { 

     // always compare to smallest number. Even if you don't return 
     // number anymore, you are still accessing the value held by 
     // the number variable. So even making this change alone will 
     // make the compiler error go away 
     if element < number { 
      number = element 
     } 

     fmt.Println(" :::: ",element) 
    } 
    return number // return number 
} 
+0

спасибо вам @abhink я получил его –

Смежные вопросы