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.
float64is 64-bit floating point data type, usually similar to C'sdouble.- The variable
intrstis 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,
PrintfandScanfstart 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,
%%inPrintfprints a literal % and%.2fprints a floating point number upto two decimal points.\nprints a newline, or in other words, ends the current line. - Again, if you are not familiar with C,
&is used before the variables inScanfbecause you are passing the address of the variable toScanfso that it can fill the variable.