Tag: Go structs

  • Go (Golang) Tutorial Roadmap

    Introduction to Go (Golang)

    Overview of Go

    Go (also known as Golang) is an open-source, statically typed, compiled programming language developed by Google. It is designed for simplicity, performance, and scalability, making it ideal for cloud services, distributed systems, and backend development.

    Basic Go Program

    • Structure of a Go program
    • Writing and running a simple “Hello, World” program

    Go Language Fundamentals

    Identifiers

    • Naming rules and conventions in Go

    Data Types in Go

    • Basic data types: int, float, string, bool
    • Composite data types: arrays, slices, structs
    • Reference types: pointers, maps, channels

    Constants

    • Declaring constants using const
    • Typed vs untyped constants

    Control Statements in Go

    Conditional Statements

    • if statement
    • if-else statement
    • Nested if
    • if-else-if ladder

    Loops in Go

    • for loop
    • Infinite loops
    • Loop control using break and continue

    Switch Statement

    • Expression switch
    • Type switch

    Functions and Methods

    Functions in Go

    • Defining and calling functions

    Variadic Functions

    • Functions with variable number of arguments

    Anonymous Functions

    • Lambda-style functions

    Defer Keyword

    • Deferred function execution

    Methods in Go

    • Methods with receiver types

    Structures in Go

    Structures

    • Defining and using structs

    Nested Structures

    • Structs within structs

    Anonymous Structures and Fields

    • Inline struct definitions

    Arrays in Go

    Arrays

    • Declaring and initializing arrays

    Copying Arrays

    • Copying one array into another

    Slices in Go

    Slices Overview

    • Creating and using slices

    Slice Composite Literals

    • Slice initialization techniques

    Strings in Go

    Working with Strings

    • String declaration
    • Common string operations

    Pointers in Go

    Pointer Basics

    • Understanding pointers

    Passing Pointers to Functions

    • Call-by-reference behavior

    Pointer to Struct

    • Accessing struct fields using pointers

    Double Pointer

    • Pointer to pointer

    Comparing Pointers

    • Pointer comparison rules

    Object-Oriented Programming in Go

    OOP Concepts in Go

    • Structs as objects
    • Methods and interfaces

    Concurrency in Go

    Goroutines

    • Lightweight threads

    Channels

    • Communication between goroutines

    Unidirectional Channels

    • Send-only and receive-only channels

    Select Statement

    • Handling multiple channel operations

    Error Handling in Go

    Defer

    • Resource cleanup

    Error Handling

    • Using the error interface

    Custom Errors

    • Creating custom error types

    Error Wrapping

    • Wrapping and unwrapping errors

    Panic and Recover

    • Handling runtime panics

    First-Class Functions

    • Functions as values
    • Passing functions as arguments

    Reflection in Go

    Reflection

    • Inspecting types at runtime
    • reflect package usage

    File Handling in Go

    Reading Files

    • Reading file contents

    Writing Files

    • Writing data to files