Первоначально было опубликовано здесь!
Чтобы легко инициализировать локальную переменную для условного оператора if в Golang, вы можете написать код инициализации переменной после ключевого слова if
, за которым следует символ ;
(точка с запятой), а затем условный оператор.
TL;DR
package main
import "fmt"
func main() {
// a simple if conditional statement
// and a local variable called `greeting`
// with the value of `Hey`
if greeting := "Hey"; 3 < 5 {
fmt.Printf(greeting)
fmt.Printf(" Yes, it is true!")
}
// using the `greeting` variable outside the
// if conditional statement won't work
fmt.Printf(greeting); // ❌ undefined: greeting. Go build failed.
}
Например, допустим, у нас есть условный оператор if, который проверяет, меньше ли значение 3
, чем значение 5
, и если это так (очевидно), должен вывести на терминал текст Да, это так!
.
Это будет выглядеть следующим образом,
package main
import "fmt"
func main() {
// a simple if conditional statement
if 3 < 5 {
fmt.Printf("Yes, it is true!")
}
}
Теперь, чтобы легко инициализировать локальную переменную для условного блока if, мы можем указать инициализацию переменной после ключевого слова if
и завершить инициализацию переменной символом ;
(точка с запятой).
Давайте создадим локальную переменную greeting
со значением Hey
и выведем ее на терминал.
Это можно сделать следующим образом,
package main
import "fmt"
func main() {
// a simple if conditional statement
// and a local variable called `greeting`
// with the value of `Hey`
if greeting := "Hey"; 3 < 5 {
fmt.Printf(greeting)
fmt.Printf(" Yes, it is true!")
}
}
Теперь, если вы запустите программу, вы увидите вывод, подобный этому,
Hey Yes, it is true!
Наконец, чтобы доказать, что это доступно только в указанном нами условном блоке if. Давайте также попробуем использовать переменную greeting
вне условного оператора if.
Это можно сделать следующим образом,
package main
import "fmt"
func main() {
// a simple if conditional statement
// and a local variable called `greeting`
// with the value of `Hey`
if greeting := "Hey"; 3 < 5 {
fmt.Printf(greeting)
fmt.Printf(" Yes, it is true!")
}
// using the `greeting` variable outside the
// if conditional statement won't work
fmt.Printf(greeting); // ❌ undefined: greeting. Go build failed.
}
Как только вы запустите программу, компилятор Go выдаст ошибку undefined: greeting. Go build failed.
что доказывает, что переменная объявлена локально для условного оператора if.
Мы успешно инициализировали локальную переменную для условного оператора if в Golang/Go. Ура 🥳!
Посмотрите приведенный выше код в реальном времени в The Go Playground.
Вот и все 😃!
Не стесняйтесь поделиться, если вы нашли это полезным 😃.