So, we're going to continue talking about the basic data types, but a couple of things I want to hit on are comments and print statements. So, it's interesting when teaching a class about programming language, there are some things that you have to teach it linearly, right? One thing at a time. But some things are basic concepts that I have to use very early on. So, I'm going now to sequence a little bit, but these are comments and print statements I use all the time, I've even used them already. So, I need to define those then I'll keep going with the variables. So, comments. Comments this is pretty straight forward, these are basically C like comments, they look like this the same as in C. Single-line comments are just a double slash or slash-slash. Everything to the right of the slash-slash on the line, that's a comment. Which means it's completely ignored by the compiler. It's only text for the programmer to look at, to understand, to help with the understandability of the code. Which is a useful thing. Comments are excellent things when used appropriately. But you can see here, you can see slash-slash, this is a comment and then everything to the right of it, which is everything on that line is going to be comet stuff I've highlighted in red there. Then on the next line, I declare a variable var x-int, and I say slash-slash another comment. In that case, the slash-slash, everything to the right of the slash slash on that line is comment, but the stuff on the left is still valid code. So, the stuff on the left gets compiled, the stuff on the right is ignored by the compiler. Now, in addition to the single-line comments, you got blocked comments, and those are marked off with the slash-star and the star-slash. Slash-star begins that star slash ends it. Everything between the slash-star and star-slash is a comment. So, in this case it's just two lines, but I can have any number of lines of code. If I wanted to have a lines of text whatever, I can have any number of lines of text describing a function or something like that mark that, put that as a block before the function if I wanted to. So, those are comments. Now, an additional thing that I've already been using print statements just because they're so useful. Printing, it's done using the format package FMT package. So, you have to import the format package import format at the top of your program. Then printf is the first standard print function you use. A format.print it prints a string. So, it passes a string as an argument to printf. So, format that printf quote tie. A string is delimited by these double-quotes, and we'll talk more about strings but the stubble ways just double-quotes. Or I can say x equals x colon equals Joe, and then format our printf i plus x, so plus the concatenation operator, that concatenates the Hi and the next string x. Right. Which is a word Joe. So, that would print out Hi Joe with space in between. Now, we also we're going to use format strings. Format strings are strings that are used for formatting the output, to make it look nice. Basically, all format strings are there strings in double-quotes, but inside the string, use what are called conversion characters. So, in this language they're, in Go they use percent. Percent, and then some of the characters. So, for instance, you look at the example format printf says hi, and then percent S. Percent S is a conversion character for a string. So, what's going to happen is wherever you see the convergent character, that character will be substituted by some variable in this case this is percent S that means a string. So, it expects a string. So, if we look at the arguments to printf, the first argument is the Hi, is the string hi percent s, that's a format string. The next argument, is the x. That x is going to be some string that is going to be substituted in for the percent s. So, if x is the word Joe, then when I do this print statement, it's going to say Hi Joe, because Joe will be substituted in for the percent s. So, this is a commonly used, these format strings are commonly used to make the format look nice when you're printing. So, besides the comments and the printing, let's start talking a little bit about integers and the nature of integers. So, first there's a generic int declaration we've already declared some integers are var x int. Now, there are different varieties of integers. Generally, for the most part we're not going to care, we just say var x int, and leave it to the compiler to figure out what type of integer, what length of integer it to use most of the time. But you can have different lengths of integers too. So, for instance here, you got int8, int16, and 32, and 64 and those numbers are the number of bits that are used to represent the integer and memory. So, eight-bit integers, 16-bit 32-bit, 64-bit. Then you want unsigned integers. So, and also eight-bit, 16 bit, 32, 64. That is we aren't unsigned. So, that means that they can get larger. Meaning, there's a normally and we're using two's complement arithmetic inside our machine. So, the most significant bit is the signed bit. In an unsigned integer, that most significant bit is not used for the sign, it's used for magnitude representation. So, the magnitude, the absolute value of the unsigned integer can get bigger just because you have that extra bit that would have been used for signing and irregular integer, you can use it for magnitude. So, the difference between these different lengths of integers is just how big do we need the integer to be. So, an eight bit integer let's say, that can only represent x, let's say it's an 8-bit onside the sound side for a second, that can represent zero to 255, because that's the biggest number you can represent with eight bits. But a 16-bit integer can go from zero, like an unsigned integer can go from zero to 64K, which is about 65,000 and there about. So, it's much bigger. So, the more bits you use, the bigger the number representation can be. The most common thing to do, is just to declare it as an int and leave it to the compiler figure out, but if you happen to know the magnitude of the numbers that you want, you can control that by specifying what size integer you want. Now, integers also have a set of operators, binary operators I'm showing right here. They're also unitary operators but these are the binary ones. These you've seen these in every language, plus, minus, times, all the arithmetic, shift, modulus, comparison operator, so equal-equal is a comparison, equality comparison. Part ahead exclamation equal, that's not equal. Greater than, less than, so forth, there are Boolean operators, so and or, and then bitwise operators, where it does Boolean operations per bit inside wherever the integer is. So, you can see those too, but these are common to basically to all, not all, but all standard languages have the same set of operators that you can operate on interests with.