Basics of Go

Control Structures

Maximiliano Firtman

Maximiliano Firtman

Independent Consultant
Basics of Go

Check out a free preview of the full Basics of Go course

The "Control Structures" Lesson is part of the full, Basics of Go course featured in this preview video. Here's what you'd learn in this lesson:

Maximiliano explores Go's commonly used control structures, including if, for, and switch, highlighting the differences in formatting compared to JavaScript. The switch structure is particularly useful as it can include conditions and serve as a replacement for extensive if statements.


Transcript from the "Control Structures" Lesson

>> And before going and writing, we are going to write two projects before getting into the next topic. Let's talk a little bit about contract structures because so far we did the functions and that's all. We have if else, that's pretty simple. Switch, it says reloaded. I have four for loops, we don't have while or do while.

Simplicity, we don't need a while. Probably, you are thinking yeah, but sometimes the four is, well, you will see that the four will be good enough. We don't need parentheses for Boolean conditions. Typically, you write if parentheses. Well, not here. Four parentheses, not here. No parentheses, okay? And also, we have only one type of operator for equality.

So we have just = =, we don't have triple equals or other weird things. No. Just one, okay? Pretty simple. If, else is typically as you're expecting, the only strange part is that you can put more than one expression in the if condition with semicolon is the one.

And if you do that, the last one is the condition, and then you can, for example, create variables. You can create variables in the if declaration. What's the point? The variable that you set here will live in the if, and also in the else, but not outside. So it's kind of a special scope that is not possible on other languages.

You create a variable on the outer scope, or then if it's an inner scope, you have a different one for the if and for the else, for the true and for the false. Well, here you can create variables whose scope will be both. Because they realize that's a typical use case for example error messages or whatever objects that you wanna create variables that you wanna create, and you want that variable to exist both on the positive and the negative side of this.

The switch. It's pretty cool, actually. This is the standard switch. The switch is a select case, so it's going to pick only one of the cases that are set. We don't have breaks. If you're coming from JavaScript or other languages, we don't need to set the break. Actually what you have is a special sentence, it's fall through in case you want the opposite of break, you wanna fall through to the next case.

So in this case, if it's Saturday, you can fall through automatically to Sunday. So it's going to execute the same code. But by default, it will break. Okay, make sense? That's kind of simple. But one nice thing that we have about switch here, is that we can actually remove the whole declaration and use case with any Boolean condition from any variable.

So you can use this to reduce if else, if else, if else, if else, if. So it's just a switch condition that looks pretty cool. Again to clean code that then you can ask anything and only the first one that gets true will be executed. Okay, make sense?

And there is always a default if no one was actually true, then it goes directly to the end. Pretty cool, right? The for loop. First, we can use it as with the classic for, with three arguments, the initialization, then the condition, and the post loop sentence. That's pretty common to any for.

We can also use it similar to what is a for in JavaScript if you have experience with that. So when you have a collection, it can be an array, it can be a map, it can be a slice. You prefix that with a range, and then when you're going to get here is a new variable.

Be careful :=, it's a new variable for the index, not for the actual element in the collection, that's why it's not a foreach. It's similar to a for in. You get the index, you still need to get to the property manually. If you want similar to foreach, it's the same thing range, but you receive two values.

The first one is the key, the index, and then you receive the value. We will use that now, so no worries. Do we have anything else? Well, actually, no, but you can use for for while. Instead of having a while, we use the same for. The four also accepts directly a Boolean expression, and it's a Y also you have an infinite loop.

It's just four with no expression. Okay, we don't have while, just for. So we use the for for all the loops. Based on the argument that you used me, you found there too, therefore, it will use one or the other. If, switch, for that's all you have.

Learn Straight from the Experts Who Shape the Modern Web

  • In-depth Courses
  • Industry Leading Experts
  • Learning Paths
  • Live Interactive Workshops
Get Unlimited Access Now