Yesterday (Day 11), we created our first Go program that was self-contained and the parts we wanted to get user input for were created as variables within our code and given values, we now want to ask the user for their input to give the variable the value for the end message.
Before we do that let's take a look at our application again and walk through the variables we want as a test before getting that user input.
Yesterday we finished up with our code looking like this day11_example4.go we have manually in code defined our challenge, daystotal, dayscomplete
variables and constants.
Let's now add a new variable called TwitterName
you can find this new code at day12_example1.go and if we run this code this is our output.
We are on day 12 and we would need to change that dayscomplete
every day and compile our code each day if this was hardcoded which doesn't sound so great.
Getting user input, we want to get the value of maybe a name and the number of days completed. For us to do this we can use another function from within the fmt
package.
Recap on the fmt
package, different functions for: formatted input and output (I/O)
- Print Messages
- Collect User Input
- Write into a file
This is instead of assigning the value of a variable we want to ask the user for their input.
fmt.Scan(&TwitterName)
Notice that we also use &
before the variable. This is known as a pointer which we will cover in the next section.
In our code day12_example2.go you can see that we are asking the user to input two variables, TwitterName
and DaysCompleted
Let's now run our program and you see we have input for both of the above.
Ok, that's great we got some user input and we printed a message but what about getting our program to tell us how many days we have left in our challenge.
For us to do that we have created a variable called remainingDays
and we have hard valued this in our code as 90
we then need to change the value of this value to print out the remaining days when we get our user input of DaysCompleted
we can do this with this simple variable change.
remainingDays = remainingDays - DaysCompleted
You can see how our finished program looks here day12_example2.go.
If we now run this program you can see that simple calculation is made based on the user input and the value of the remainingDays
A pointer is a (special) variable that points to the memory address of another variable.
A great explanation of this can be found here at geeksforgeeks
Let's simplify our code now and show with and without the &
in front of one of our print commands, this gives us the memory address of the pointer. I have added this code example here. day12_example4.go
Below is running this code.
- StackOverflow 2021 Developer Survey
- Why we are choosing Golang to learn
- Jake Wright - Learn Go in 12 minutes
- Techworld with Nana - Golang full course - 3 hours 24 mins
- NOT FREE Nigel Poulton Pluralsight - Go Fundamentals - 3 hours 26 mins
- FreeCodeCamp - Learn Go Programming - Golang Tutorial for Beginners
- Hitesh Choudhary - Complete playlist
See you on Day 13.