Developing a Basic Phone Book Application
Let’s learn how to create a command-line phone book app using hardcoded data for users to search and list records by surname.
We'll cover the following
Introduction
In this lesson, to utilize the skills we’ve picked up so far, we will develop a basic phone book application in Go. Despite its limitations, the presented application is a command-line utility that searches a slice of structures that is statically defined (hardcoded) in the Go code. The utility offers support for two commands named search
and list
that search for a given surname and return its full record if the surname is found and lists all available records, respectively.
Shortcomings
The implementation has many shortcomings, including the following:
If we want to add or delete any data, we need to change the source code.
We can’t present the data in a sorted form, which might be OK when we have three entries but might not work with more than 40 entries.
We can’t export our data or load it from an external file.
We can’t distribute the phone book application as a binary file because it uses hardcoded data.
Description
The code of phoneBook.go
can be briefly described as follows:
There exists a new user-defined data type for holding the records of the phone book that is a Go structure with three fields named
Name
,Surname
, andTel
. Structures group a set of values into a single data type, which allows us to pass and receive this set of values as a single entity.There exists a global variable that holds the data of the phone book, which is a slice of structures named
data
.There exist two functions that help us implement the functionality of the
search
andlist
commands.The contents of the
data
global variable are defined in themain()
function using multipleappend()
calls. We can change, add, or delete the contents of thedata
slice according to our needs.Lastly, the program can only serve one task at a time. This means that to perform multiple queries, we have to run the program multiple times.
Implementation details
Let’s now see phoneBook.go
in more detail, beginning with its preamble:
Get hands-on with 1400+ tech skills courses.