Go is a relatively new programming language that is adored for its simplicity, compilation speed, and ease of network and concurrent programming. If you've successfully written and run your Hello World program in Go, here is the next step. It's a simple interest calculator that shows how basic I/O, variable declaration and calculations work in Go.
package main import "fmt" func main() { var p, r, n float64 fmt.Printf("Enter the principal amount (P): ") fmt.Scanf("%f", &p) fmt.Printf("Enter the rate of interest (R%%): ") fmt.Scanf("%f", &r) fmt.Printf("Enter the no. of years (N): ") fmt.Scanf("%f", &n) intrst := p * r/100 * n fmt.Printf("The total interest amount is %.2f\n", intrst) }
You can save the above code using any basic text editor. I hope you've installed Go. Assuming you chose the name main.go
, you can run this program using the command go run main.go
. Of course I'm not getting into the details of building a Go package. That's not the point of this article.
Let's see what's in the code. The logic is pretty straightforward. You read some basic parameters for calculating simple interest and run a basic formula. But what are some interesting facts related to this code, especially if you are new to Go?
- Semicolons for statement termination are optional.
float64
is 64-bit floating point data type, usually similar to C'sdouble
.- The variable
intrst
is declared and initialized using the:=
operator, which helps avoid manually specifying the data type because it uses Go's type inference capability. - Unlike in C,
Printf
andScanf
start with uppercase letter, because they are public functions from the packagefmt
. Public members of containers like packages and structs start with uppercase letters in Go. - In case you are not familiar with C,
%%
inPrintf
prints a literal % and%.2f
prints a floating point number upto two decimal points.\n
prints a newline, or in other words, ends the current line. - Again, if you are not familiar with C,
&
is used before the variables inScanf
because you are passing the address of the variable toScanf
so that it can fill the variable.