topics/

directory
v0.0.0-...-38a5715 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2024 License: Apache-2.0

README

Training Classes

Note: This material has been designed to be taught in a classroom environment. The code is well commented but missing some of the contextual concepts and ideas that will be covered in class.

Ultimate Go

This class teaches how to write better, more idiomatic and performant code in Go with a focus on micro-level engineering decisions At the very beginning of class, the instructor will focus on Go internals that are critical to understanding the core tradeoffs the language makes on readability, simplicity and performance. The class builds layers of foundational knowledge that will give you a deeper understanding into data semantics, decoupling, concurrency and tooling. Perfect for developers just starting out or developers with years of Go experience. Everyone will be writing better code after this class.

Ultimate Go

Ultimate Service

This class teaches how to build production-level services in Go with a focus on macro-level engineering decisions. From the beginning you will pair program with the instructor, walking through the design philosophies and guidelines used to engineer the code. With each new feature, you will learn more about the transition from programming to engineering and the points of refactoring required to write production level applications. Throughout the class, Go modules and Kubernetes will be a focus. Everyone will be making better engineering decisions after this class.

Service Starter Kit

Ultimate AI / Machine Learning

This is material for any Go developer, data scientist, analyst, or statistician who wishes to learn how to build robust machine learning applications in Go. This class provides an intensive, comprehensive and idiomatic view on training, utilizing, evaluating, and deploying machine learning models using Go. We believe this class is perfect for anyone wishing to build data-driven applications that produce valuable insights, have reproducible behavior, and can be deployed within modern architectures.

Ultimate AI / Machine Learning

External Courses

Go 102 by Tim Blair

Repo Slide Deck

Todd McLeod's Go Trainings

Go Fundamentals Go Web Development You Tube

Go Challenges

Learn Go by solving problems and getting feedback from Go experts!

exercism.io

Level up your programming skills by solving small practice problems. Then submit the solution to the site for feedback. This site is perfect for both newbies and experienced programmers.

exercism.io

Gopher Puzzles

Dave Cheney Puzzles - 2016

John Arundel's Fundamentals

This is a set of introductory exercises in Go programming, suitable for complete beginners. If you don't know anything about Go yet, or programming, but would like to learn, this is the right place!

For the Love of Go: Fundamentals


All material is licensed under the Apache License Version 2.0, January 2004.

Directories

Path Synopsis
go
algorithms/data/hash
Package hash implements a hash table.
Package hash implements a hash table.
algorithms/data/list
Package list implements of a doubly link list in Go.
Package list implements of a doubly link list in Go.
algorithms/data/queue
Package queue implements of a circular queue.
Package queue implements of a circular queue.
algorithms/data/stack
Package stack asks the student to implement a stack in Go.
Package stack asks the student to implement a stack in Go.
algorithms/data/tree/binary
Package binary is an implementation of a balanced binary tree.
Package binary is an implementation of a balanced binary tree.
algorithms/fun/barber
Program creates customers for the simulation of the sleeping barber problem implemented in the shop package.
Program creates customers for the simulation of the sleeping barber problem implemented in the shop package.
algorithms/fun/barber/shop
Package shop implements the sleeping barber problem.
Package shop implements the sleeping barber problem.
algorithms/fun/freq
Package freq provides support for find the frequency in which a rune is found in a collection of text documents.
Package freq provides support for find the frequency in which a rune is found in a collection of text documents.
algorithms/fun/pubsub
This is a simple example put together to help a friend with the idea of not over-engineering a pubsub pattern.
This is a simple example put together to help a friend with the idea of not over-engineering a pubsub pattern.
algorithms/fun/vlq
Package vlq implements VLQ encoding/decoding.
Package vlq implements VLQ encoding/decoding.
algorithms/searches/binarysearch
Package binarysearch provides an example of a binary search implementation.
Package binarysearch provides an example of a binary search implementation.
algorithms/searches/interpolationsearch
Package interpolationsearch provides an example of an interpolation search implementation.
Package interpolationsearch provides an example of an interpolation search implementation.
algorithms/searches/jumpsearch
Package jumpsearch provides an example of a jump search implementation.
Package jumpsearch provides an example of a jump search implementation.
algorithms/searches/linearsearch
Package linearsearch provides an example of a linear search implementation.
Package linearsearch provides an example of a linear search implementation.
algorithms/simulations/birthday
Package main simulate the "Birthday problem".
Package main simulate the "Birthday problem".
algorithms/simulations/catan
Package main simulate two-sice rolls.
Package main simulate two-sice rolls.
algorithms/simulations/monty
Simulation of "Monty Hall problem" https://en.wikipedia.org/wiki/Monty_Hall_problem
Simulation of "Monty Hall problem" https://en.wikipedia.org/wiki/Monty_Hall_problem
algorithms/simulations/pi
Calculate the value of π using simulation.
Calculate the value of π using simulation.
algorithms/simulations/sick
Package main simulate precision of a medical test.
Package main simulate precision of a medical test.
algorithms/sorting/bubble
Implementation of Bubble sort in Go.
Implementation of Bubble sort in Go.
algorithms/sorting/heap
Package heap implement the heapsort algorithm in Go.
Package heap implement the heapsort algorithm in Go.
algorithms/sorting/insertion
Package insertionsort implement of Insertion Sort algorithm in Go.
Package insertionsort implement of Insertion Sort algorithm in Go.
algorithms/sorting/quick
Package quicksort implementation of Quick sort algorithm in Go.
Package quicksort implementation of Quick sort algorithm in Go.
algorithms/sorting/selection
Package selectionsort implement of Selection Sort algorithm in Go.
Package selectionsort implement of Selection Sort algorithm in Go.
concurrency/channels/advanced/example1
Sample program to show the order of channel communication for unbuffered, buffered and closing channels based on the specification.
Sample program to show the order of channel communication for unbuffered, buffered and closing channels based on the specification.
concurrency/channels/example1
This sample program demonstrates the basic channel mechanics for goroutine signaling.
This sample program demonstrates the basic channel mechanics for goroutine signaling.
concurrency/channels/example2
Sample program to show how to use an unbuffered channel to simulate a game of tennis between two goroutines.
Sample program to show how to use an unbuffered channel to simulate a game of tennis between two goroutines.
concurrency/channels/example3
Sample program to show how to use an unbuffered channel to simulate a relay race between four goroutines.
Sample program to show how to use an unbuffered channel to simulate a relay race between four goroutines.
concurrency/channels/example4
This sample program demonstrates how to use a buffered channel to receive results from other goroutines in a guaranteed way.
This sample program demonstrates how to use a buffered channel to receive results from other goroutines in a guaranteed way.
concurrency/channels/example5
This sample program demonstrates how to use a channel to monitor the amount of time the program is running and terminate the program if it runs too long.
This sample program demonstrates how to use a channel to monitor the amount of time the program is running and terminate the program if it runs too long.
concurrency/channels/exercises/exercise1
Write a program where two goroutines pass an integer back and forth ten times.
Write a program where two goroutines pass an integer back and forth ten times.
concurrency/channels/exercises/exercise2
Write a program that uses a fan out pattern to generate 100 random numbers concurrently.
Write a program that uses a fan out pattern to generate 100 random numbers concurrently.
concurrency/channels/exercises/exercise3
Write a program that uses goroutines to generate up to 100 random numbers.
Write a program that uses goroutines to generate up to 100 random numbers.
concurrency/channels/exercises/exercise4
Write a program that creates a fixed set of workers to generate random numbers.
Write a program that creates a fixed set of workers to generate random numbers.
concurrency/channels/exercises/template1
Write a program where two goroutines pass an integer back and forth ten times.
Write a program where two goroutines pass an integer back and forth ten times.
concurrency/channels/exercises/template2
Write a program that uses a fan out pattern to generate 100 random numbers concurrently.
Write a program that uses a fan out pattern to generate 100 random numbers concurrently.
concurrency/channels/exercises/template3
Write a program that uses goroutines to generate up to 100 random numbers.
Write a program that uses goroutines to generate up to 100 random numbers.
concurrency/channels/exercises/template4
Write a program that creates a fixed set of workers to generate random numbers.
Write a program that creates a fixed set of workers to generate random numbers.
concurrency/data_race/advanced/example1
Sample program to show a more complicated race condition using an interface value.
Sample program to show a more complicated race condition using an interface value.
concurrency/data_race/example1
Sample program to show how to create race conditions in our programs.
Sample program to show how to create race conditions in our programs.
concurrency/data_race/example2
Sample program to show how to use the atomic package to provide safe access to numeric types.
Sample program to show how to use the atomic package to provide safe access to numeric types.
concurrency/data_race/example3
Sample program to show how to use a mutex to define critical sections of code that need synchronous access.
Sample program to show how to use a mutex to define critical sections of code that need synchronous access.
concurrency/data_race/example4
Sample program to show how to use a read/write mutex to define critical sections of code that needs synchronous access.
Sample program to show how to use a read/write mutex to define critical sections of code that needs synchronous access.
concurrency/data_race/example5
Sample program to show how maps are not safe for concurrent use by default.
Sample program to show how maps are not safe for concurrent use by default.
concurrency/data_race/exercises/exercise1
Answer for exercise 1 of Race Conditions.
Answer for exercise 1 of Race Conditions.
concurrency/data_race/exercises/template1
Fix the race condition in this program.
Fix the race condition in this program.
concurrency/goroutines/example1
Sample program to show how to create goroutines and how the scheduler behaves.
Sample program to show how to create goroutines and how the scheduler behaves.
concurrency/goroutines/example2
Sample program to show how the goroutine scheduler will time slice goroutines on a single thread.
Sample program to show how the goroutine scheduler will time slice goroutines on a single thread.
concurrency/goroutines/example3
Sample program to show how to create goroutines and how the goroutine scheduler behaves with two contexts.
Sample program to show how to create goroutines and how the goroutine scheduler behaves with two contexts.
concurrency/goroutines/exercises/exercise1
Create a program that declares two anonymous functions.
Create a program that declares two anonymous functions.
concurrency/goroutines/exercises/template1
Create a program that declares two anonymous functions.
Create a program that declares two anonymous functions.
concurrency/patterns/advanced
This sample program demonstrates how the logger package works.
This sample program demonstrates how the logger package works.
concurrency/patterns/chat
Package chat implements a basic chat room.
Package chat implements a basic chat room.
concurrency/patterns/chat/main
This sample program demonstrates how to create a simple chat system.
This sample program demonstrates how to create a simple chat system.
concurrency/patterns/logger
Package logger shows a pattern of using a buffer to handle log write continuity by dealing with write latencies by throwing away log data.
Package logger shows a pattern of using a buffer to handle log write continuity by dealing with write latencies by throwing away log data.
concurrency/patterns/logger/main
This sample program demonstrates how the logger package works.
This sample program demonstrates how the logger package works.
concurrency/patterns/pool
Package pool manages a user defined set of resources.
Package pool manages a user defined set of resources.
concurrency/patterns/pool/main
This sample program demonstrates how to use the pool package to share a simulated set of database connections.
This sample program demonstrates how to use the pool package to share a simulated set of database connections.
concurrency/patterns/task
Package task provides a pool of goroutines to perform tasks.
Package task provides a pool of goroutines to perform tasks.
concurrency/patterns/task/main
This sample program demonstrates how to use the work package to use a pool of goroutines to get work done.
This sample program demonstrates how to use the work package to use a pool of goroutines to get work done.
design/composition/assertions/example1
Sample program demonstrating when implicit interface conversions are provided by the compiler.
Sample program demonstrating when implicit interface conversions are provided by the compiler.
design/composition/assertions/example2
Sample program demonstrating that type assertions are a runtime and not compile time construct.
Sample program demonstrating that type assertions are a runtime and not compile time construct.
design/composition/assertions/example3
Sample program to show how method sets can affect behavior.
Sample program to show how method sets can affect behavior.
design/composition/decoupling/example1
Sample program demonstrating struct composition.
Sample program demonstrating struct composition.
design/composition/decoupling/example2
Sample program demonstrating decoupling with interfaces.
Sample program demonstrating decoupling with interfaces.
design/composition/decoupling/example3
Sample program demonstrating interface composition.
Sample program demonstrating interface composition.
design/composition/decoupling/example4
Sample program demonstrating decoupling with interface composition.
Sample program demonstrating decoupling with interface composition.
design/composition/decoupling/example5
Sample program demonstrating removing interface pollution.
Sample program demonstrating removing interface pollution.
design/composition/decoupling/example6
Sample program demonstrating being more precise with API design.
Sample program demonstrating being more precise with API design.
design/composition/exercises/exercise1
Using the template, declare a set of concrete types that implement the set of predefined interface types.
Using the template, declare a set of concrete types that implement the set of predefined interface types.
design/composition/grouping/example1
This is an example of using type hierarchies with a OOP pattern.
This is an example of using type hierarchies with a OOP pattern.
design/composition/grouping/example2
This is an example of using composition and interfaces.
This is an example of using composition and interfaces.
design/composition/mocking/example1
Sample program to show how you can personally mock concrete types when you need to for your own packages or tests.
Sample program to show how you can personally mock concrete types when you need to for your own packages or tests.
design/composition/mocking/example1/pubsub
Package pubsub simulates a package that provides publication/subscription type services.
Package pubsub simulates a package that provides publication/subscription type services.
design/composition/pollution/example1
This is an example that creates interface pollution by improperly using an interface when one is not needed.
This is an example that creates interface pollution by improperly using an interface when one is not needed.
design/composition/pollution/example2
This is an example that removes the interface pollution by removing the interface and using the concrete type directly.
This is an example that removes the interface pollution by removing the interface and using the concrete type directly.
design/error_handling/example1
Sample program to show how the default error type is implemented.
Sample program to show how the default error type is implemented.
design/error_handling/example2
Sample program to show how to use error variables to help the caller determine the exact error being returned.
Sample program to show how to use error variables to help the caller determine the exact error being returned.
design/error_handling/example3
http://golang.org/src/pkg/encoding/json/decode.go Sample program to show how to implement a custom error type based on the json package in the standard library.
http://golang.org/src/pkg/encoding/json/decode.go Sample program to show how to implement a custom error type based on the json package in the standard library.
design/error_handling/example4
Package example4 provides code to show how to implement behavior as context.
Package example4 provides code to show how to implement behavior as context.
design/error_handling/example5
Sample program to show see if the class can find the bug.
Sample program to show see if the class can find the bug.
design/error_handling/example5/reason
Sample program to show see if the class can find the bug.
Sample program to show see if the class can find the bug.
design/error_handling/example6
Sample program to show how wrapping errors work with pkg/errors.
Sample program to show how wrapping errors work with pkg/errors.
design/error_handling/example7
Sample program to show how wrapping errors work with the stdlib.
Sample program to show how wrapping errors work with the stdlib.
design/error_handling/exercises/exercise1
Create two error variables, one called ErrInvalidValue and the other called ErrAmountTooLarge.
Create two error variables, one called ErrInvalidValue and the other called ErrAmountTooLarge.
design/error_handling/exercises/exercise2
Create a custom error type called appError that contains three fields, err error, message string and code int.
Create a custom error type called appError that contains three fields, err error, message string and code int.
design/error_handling/exercises/template1
Create two error variables, one called ErrInvalidValue and the other called ErrAmountTooLarge.
Create two error variables, one called ErrInvalidValue and the other called ErrAmountTooLarge.
design/error_handling/exercises/template2
Create a custom error type called appError that contains three fields, err error, message string and code int.
Create a custom error type called appError that contains three fields, err error, message string and code int.
exercises/chatbot/exercise
Write a chat bot to talk to you.
Write a chat bot to talk to you.
exercises/chatbot/template
Write a chat bot to talk to you.
Write a chat bot to talk to you.
exercises/contributors/part1
Call the GitHub API to get a list of repository contributors.
Call the GitHub API to get a list of repository contributors.
exercises/contributors/template
Call the GitHub API to get a list of repository contributors.
Call the GitHub API to get a list of repository contributors.
exercises/sha256sum/exercise
Write a program that is given a list of file names as arguments then prints the sha256 sum for the contents of each file.
Write a program that is given a list of file names as arguments then prints the sha256 sum for the contents of each file.
exercises/sha256sum/template
Write a program that is given a list of file names as arguments then prints the sha256 sum for the contents of each file.
Write a program that is given a list of file names as arguments then prints the sha256 sum for the contents of each file.
generics/08-swapping
This code provided by Sathish VJ.
This code provided by Sathish VJ.
language/arrays/example1
Sample program to show how to declare and iterate over arrays of different types.
Sample program to show how to declare and iterate over arrays of different types.
language/arrays/example2
Sample program to show how arrays of different sizes are not of the same type.
Sample program to show how arrays of different sizes are not of the same type.
language/arrays/example3
Sample program to show how the behavior of the for range and how memory for an array is contiguous.
Sample program to show how the behavior of the for range and how memory for an array is contiguous.
language/arrays/example4
Sample program to show how the for range has both value and pointer semantics.
Sample program to show how the for range has both value and pointer semantics.
language/arrays/exercises/exercise1
Declare an array of 5 strings with each element initialized to its zero value.
Declare an array of 5 strings with each element initialized to its zero value.
language/arrays/exercises/template1
Declare an array of 5 strings with each element initialized to its zero value.
Declare an array of 5 strings with each element initialized to its zero value.
language/constants/example1
Sample program to show how to declare constants and their implementation in Go.
Sample program to show how to declare constants and their implementation in Go.
language/constants/example2
Sample program to show how constants do have a parallel type system.
Sample program to show how constants do have a parallel type system.
language/constants/example3
Sample program to show how iota works.
Sample program to show how iota works.
language/constants/example4
Sample program to show how literal, constant and variables work within the scope of implicit conversion.
Sample program to show how literal, constant and variables work within the scope of implicit conversion.
language/constants/exercises/exercise1
Declare an untyped and typed constant and display their values.
Declare an untyped and typed constant and display their values.
language/constants/exercises/template1
Declare an untyped and typed constant and display their values.
Declare an untyped and typed constant and display their values.
language/control_flow/example1
Sample program to show how to use if statements.
Sample program to show how to use if statements.
language/control_flow/example2
Sample program to show how to use switch statements.
Sample program to show how to use switch statements.
language/control_flow/exercises/exercise1
Write a program that inspects a user's name and greets them in a certain way if they are on a list or in a different way if they are not.
Write a program that inspects a user's name and greets them in a certain way if they are on a list or in a different way if they are not.
language/control_flow/exercises/template1
Write a program that inspects a user's name and greets them in a certain way if they are on a list or in a different way if they are not.
Write a program that inspects a user's name and greets them in a certain way if they are on a list or in a different way if they are not.
language/embedding/example1
Sample program to show how what we are doing is NOT embedding a type but just using a type as a field.
Sample program to show how what we are doing is NOT embedding a type but just using a type as a field.
language/embedding/example2
Sample program to show how to embed a type into another type and the relationship between the inner and outer type.
Sample program to show how to embed a type into another type and the relationship between the inner and outer type.
language/embedding/example3
Sample program to show how embedded types work with interfaces.
Sample program to show how embedded types work with interfaces.
language/embedding/example4
Sample program to show what happens when the outer and inner type implement the same interface.
Sample program to show what happens when the outer and inner type implement the same interface.
language/embedding/exercises/exercise1
Sample program to show how you can use embedding to reuse behavior from another type and override specific methods.
Sample program to show how you can use embedding to reuse behavior from another type and override specific methods.
language/embedding/exercises/template1
This program defines a type Feed with two methods: Count and Fetch.
This program defines a type Feed with two methods: Count and Fetch.
language/exporting/example1
Sample program to show how to access an exported identifier.
Sample program to show how to access an exported identifier.
language/exporting/example1/counters
Package counters provides alert counter support.
Package counters provides alert counter support.
language/exporting/example2
Sample program to show how the program can't access an unexported identifier from another package.
Sample program to show how the program can't access an unexported identifier from another package.
language/exporting/example2/counters
Package counters provides alert counter support.
Package counters provides alert counter support.
language/exporting/example3
Sample program to show how the program can access a value of an unexported identifier from another package.
Sample program to show how the program can access a value of an unexported identifier from another package.
language/exporting/example3/counters
Package counters provides alert counter support.
Package counters provides alert counter support.
language/exporting/example4
Sample program to show how unexported fields from an exported struct type can't be accessed directly.
Sample program to show how unexported fields from an exported struct type can't be accessed directly.
language/exporting/example4/users
Package users provides support for user management.
Package users provides support for user management.
language/exporting/example5
Sample program to show how to create values from exported types with embedded unexported types.
Sample program to show how to create values from exported types with embedded unexported types.
language/exporting/example5/users
Package users provides support for user management.
Package users provides support for user management.
language/exporting/exercises/exercise1
Create a package named toy with a single exported struct type named Toy.
Create a package named toy with a single exported struct type named Toy.
language/exporting/exercises/exercise1/toy
Package toy contains support for managing toy inventory.
Package toy contains support for managing toy inventory.
language/exporting/exercises/template1
Create a package named toy with a single exported struct type named Toy.
Create a package named toy with a single exported struct type named Toy.
language/exporting/exercises/template1/toy
Package toy contains support for managing toy inventory.
Package toy contains support for managing toy inventory.
language/functions/advanced/example1
Sample program to show how to recover from panics.
Sample program to show how to recover from panics.
language/functions/example1
Sample program to show how functions can return multiple values while using named and struct types.
Sample program to show how functions can return multiple values while using named and struct types.
language/functions/example2
Sample program to show how we can use the blank identifier to ignore return values.
Sample program to show how we can use the blank identifier to ignore return values.
language/functions/example3
Sample program to show some of the mechanics behind the short variable declaration operator redeclares.
Sample program to show some of the mechanics behind the short variable declaration operator redeclares.
language/functions/example4
Sample program to show how anonymous functions and closures work.
Sample program to show how anonymous functions and closures work.
language/functions/exercises/exercise1
Declare a struct type to maintain information about a user.
Declare a struct type to maintain information about a user.
language/functions/exercises/template1
Declare a struct type to maintain information about a user.
Declare a struct type to maintain information about a user.
language/interfaces/advanced/example1
Sample program that explores how interface assignments work when values are stored inside the interface.
Sample program that explores how interface assignments work when values are stored inside the interface.
language/interfaces/example0
Sample program that could benefit from polymorphic behavior with interfaces.
Sample program that could benefit from polymorphic behavior with interfaces.
language/interfaces/example1
Sample program to show how polymorphic behavior with interfaces.
Sample program to show how polymorphic behavior with interfaces.
language/interfaces/example2
Sample program to show how to understand method sets.
Sample program to show how to understand method sets.
language/interfaces/example3
Sample program to show how you can't always get the address of a value.
Sample program to show how you can't always get the address of a value.
language/interfaces/example4
Sample program to show how the concrete value assigned to the interface is what is stored inside the interface.
Sample program to show how the concrete value assigned to the interface is what is stored inside the interface.
language/interfaces/example5
Sample program to show the syntax of type assertions.
Sample program to show the syntax of type assertions.
language/interfaces/example6
Sample program to show type assertions using the comma-ok idiom.
Sample program to show type assertions using the comma-ok idiom.
language/interfaces/example7
Sample program to show the syntax and mechanics of type switches and the empty interface.
Sample program to show the syntax and mechanics of type switches and the empty interface.
language/interfaces/exercises/exercise1
Declare an interface named speaker with a method named speak.
Declare an interface named speaker with a method named speak.
language/interfaces/exercises/template1
Declare an interface named speaker with a method named speak.
Declare an interface named speaker with a method named speak.
language/maps/example1
Sample program to show how to initialize a map, write to it, then read and delete from it.
Sample program to show how to initialize a map, write to it, then read and delete from it.
language/maps/example2
Sample program to show how maps behave when you read an absent key.
Sample program to show how maps behave when you read an absent key.
language/maps/example3
Sample program to show how only types that can have equality defined on them can be a map key.
Sample program to show how only types that can have equality defined on them can be a map key.
language/maps/example4
Sample program to show how to declare, initialize and iterate over a map.
Sample program to show how to declare, initialize and iterate over a map.
language/maps/example5
Sample program to show how to walk through a map by alphabetical key order.
Sample program to show how to walk through a map by alphabetical key order.
language/maps/example6
Sample program to show that you cannot take the address of an element in a map.
Sample program to show that you cannot take the address of an element in a map.
language/maps/example7
Sample program to show how maps are reference types.
Sample program to show how maps are reference types.
language/maps/exercises/exercise1
Declare and make a map of integer values with a string as the key.
Declare and make a map of integer values with a string as the key.
language/maps/exercises/template1
Declare and make a map of integer values with a string as the key.
Declare and make a map of integer values with a string as the key.
language/methods/example1
Sample program to show how to declare methods and how the Go compiler supports them.
Sample program to show how to declare methods and how the Go compiler supports them.
language/methods/example2
Sample program to show how to declare methods against a named type.
Sample program to show how to declare methods against a named type.
language/methods/example3
Sample program to show how to declare function variables.
Sample program to show how to declare function variables.
language/methods/example4
Sample program to show how to declare and use function types.
Sample program to show how to declare and use function types.
language/methods/exercises/exercise1
Declare a struct that represents a baseball player.
Declare a struct that represents a baseball player.
language/methods/exercises/template1
Declare a struct that represents a baseball player.
Declare a struct that represents a baseball player.
language/pointers/example1
Sample program to show the basic concept of pass by value.
Sample program to show the basic concept of pass by value.
language/pointers/example2
Sample program to show the basic concept of using a pointer to share data.
Sample program to show the basic concept of using a pointer to share data.
language/pointers/example3
Sample program to show the basic concept of using a pointer to share data.
Sample program to show the basic concept of using a pointer to share data.
language/pointers/example4
Sample program to teach the mechanics of escape analysis.
Sample program to teach the mechanics of escape analysis.
language/pointers/example5
Sample program to show how stacks grow/change.
Sample program to show how stacks grow/change.
language/pointers/exercises/exercise1
Declare and initialize a variable of type int with the value of 20.
Declare and initialize a variable of type int with the value of 20.
language/pointers/exercises/exercise2
Declare a struct type and create a value of this type.
Declare a struct type and create a value of this type.
language/pointers/exercises/template1
Declare and initialize a variable of type int with the value of 20.
Declare and initialize a variable of type int with the value of 20.
language/pointers/exercises/template2
Declare a struct type and create a value of this type.
Declare a struct type and create a value of this type.
language/slices/advanced/example1
Sample program to show how to use a third index slice.
Sample program to show how to use a third index slice.
language/slices/example1
Sample program to show how the capacity of the slice is not available for use.
Sample program to show how the capacity of the slice is not available for use.
language/slices/example2
Sample program to show the components of a slice.
Sample program to show the components of a slice.
language/slices/example3
Sample program to show how to takes slices of slices to create different views of and make changes to the underlying array.
Sample program to show how to takes slices of slices to create different views of and make changes to the underlying array.
language/slices/example4
Sample program to show how to grow a slice using the built-in function append and how append grows the capacity of the underlying array.
Sample program to show how to grow a slice using the built-in function append and how append grows the capacity of the underlying array.
language/slices/example5
Sample program to show how one needs to be careful when appending to a slice when you have a reference to an element.
Sample program to show how one needs to be careful when appending to a slice when you have a reference to an element.
language/slices/example6
Sample program to show how strings have a UTF-8 encoded byte array.
Sample program to show how strings have a UTF-8 encoded byte array.
language/slices/example7
Sample program to show how to declare and use variadic functions.
Sample program to show how to declare and use variadic functions.
language/slices/example8
Sample program to show how the for range has both value and pointer semantics.
Sample program to show how the for range has both value and pointer semantics.
language/slices/example9
Sample program to show how slices allow for efficient linear traversals.
Sample program to show how slices allow for efficient linear traversals.
language/slices/exercises/exercise1
Declare a nil slice of integers.
Declare a nil slice of integers.
language/slices/exercises/template1
Declare a nil slice of integers.
Declare a nil slice of integers.
language/struct_types/advanced/example1
Sample program to show how struct types align on boundaries.
Sample program to show how struct types align on boundaries.
language/struct_types/example1
Sample program to show how to declare and initialize struct types.
Sample program to show how to declare and initialize struct types.
language/struct_types/example2
Sample program to show how to declare and initialize anonymous struct types.
Sample program to show how to declare and initialize anonymous struct types.
language/struct_types/example3
Sample program to show how variables of an unnamed type can be assigned to variables of a named type, when they are identical.
Sample program to show how variables of an unnamed type can be assigned to variables of a named type, when they are identical.
language/struct_types/exercises/exercise1
Declare a struct type to maintain information about a user (name, email and age).
Declare a struct type to maintain information about a user (name, email and age).
language/struct_types/exercises/template1
Declare a struct type to maintain information about a user (name, email and age).
Declare a struct type to maintain information about a user (name, email and age).
language/variables/example1
Sample program to show how to declare variables.
Sample program to show how to declare variables.
language/variables/exercises/exercise1
Declare three variables that are initialized to their zero value and three declared with a literal value.
Declare three variables that are initialized to their zero value and three declared with a literal value.
language/variables/exercises/template1
Declare three variables that are initialized to their zero value and three declared with a literal value.
Declare three variables that are initialized to their zero value and three declared with a literal value.
packages/context/example1
Sample program to show how to store and retrieve values from a context.
Sample program to show how to store and retrieve values from a context.
packages/context/example2
Sample program to show how to use the WithCancel function.
Sample program to show how to use the WithCancel function.
packages/context/example3
Sample program to show how to use the WithDeadline function.
Sample program to show how to use the WithDeadline function.
packages/context/example4
Sample program to show how to use the WithTimeout function of the Context package.
Sample program to show how to use the WithTimeout function of the Context package.
packages/context/example5
Sample program that implements a web request with a context that is used to timeout the request if it takes too long.
Sample program that implements a web request with a context that is used to timeout the request if it takes too long.
packages/context/example6
Sample program to show when a Context is canceled, all Contexts derived from it are also canceled.
Sample program to show when a Context is canceled, all Contexts derived from it are also canceled.
packages/context/exercises/exercise1
Sample program that implements a simple web service using the context to handle timeouts and pass context into the request.
Sample program that implements a simple web service using the context to handle timeouts and pass context into the request.
packages/encoding/example1
Sample program to show how to unmarshal a JSON document into a user defined struct type.
Sample program to show how to unmarshal a JSON document into a user defined struct type.
packages/encoding/example2
Sample program to show how to unmarshal a JSON document into a user defined struct type from a file.
Sample program to show how to unmarshal a JSON document into a user defined struct type from a file.
packages/encoding/example3
Sample program to show how to marshal a user defined struct type into a string.
Sample program to show how to marshal a user defined struct type into a string.
packages/encoding/example4
Sample program to show how write a custom Unmarshal and Marshal functions.
Sample program to show how write a custom Unmarshal and Marshal functions.
packages/encoding/exercises/exercise1
Create a file with an array of JSON documents that contain a user name and email address.
Create a file with an array of JSON documents that contain a user name and email address.
packages/encoding/exercises/template1
Create a file with an array of JSON documents that contain a user name and email address.
Create a file with an array of JSON documents that contain a user name and email address.
packages/io/advanced/example1
Sample program to show how io.Writes can be embedded within other Writer calls to perform complex writes.
Sample program to show how io.Writes can be embedded within other Writer calls to perform complex writes.
packages/io/advanced/example2
Sample program that adds a few more features.
Sample program that adds a few more features.
packages/io/example1
Sample program to show how different functions from the standard library use the io.Writer interface.
Sample program to show how different functions from the standard library use the io.Writer interface.
packages/io/example2
Sample program to show how to write a simple version of curl using the io.Reader and io.Writer interface support.
Sample program to show how to write a simple version of curl using the io.Reader and io.Writer interface support.
packages/io/example3
Sample program to show how to use a MultiWriter to perform writes to multiple devices with one write call.
Sample program to show how to use a MultiWriter to perform writes to multiple devices with one write call.
packages/io/example4
Sample program that takes a stream of bytes and looks for the bytes “elvis” and when they are found, replace them with “Elvis”.
Sample program that takes a stream of bytes and looks for the bytes “elvis” and when they are found, replace them with “Elvis”.
packages/io/exercises/exercise1
Download any document from the web and display the content in the terminal and write it to a file at the same time.
Download any document from the web and display the content in the terminal and write it to a file at the same time.
packages/io/exercises/template1
Download any document from the web and display the content in the terminal and write it to a file at the same time.
Download any document from the web and display the content in the terminal and write it to a file at the same time.
packages/logging/example1
Sample program to show how to use the log package from the standard library.
Sample program to show how to use the log package from the standard library.
packages/logging/example2
Sample program to show how to extend the log package from the standard library.
Sample program to show how to extend the log package from the standard library.
packages/logging/exercises/exercise1
Setup a new program to use the log package.
Setup a new program to use the log package.
packages/logging/exercises/template1
Setup a new program to use the log package.
Setup a new program to use the log package.
packages/reflection/exercises/exercise1
Declare a struct type that represents a request for a customer invoice.
Declare a struct type that represents a request for a customer invoice.
packages/reflection/exercises/template1
Declare a struct type that represents a request for a customer invoice.
Declare a struct type that represents a request for a customer invoice.
packages/reflection/inspect/integer
Example shows how to use reflection to decode an integer.
Example shows how to use reflection to decode an integer.
packages/reflection/inspect/struct
Example shows how to inspect a structs fields and display the field name, type and value.
Example shows how to inspect a structs fields and display the field name, type and value.
packages/reflection/interface/map
Example shows how to reflect over a map of struct type values that are stored inside an interface value.
Example shows how to reflect over a map of struct type values that are stored inside an interface value.
packages/reflection/interface/pointer
Example shows how to reflect over a struct type pointer that is stored inside an interface value.
Example shows how to reflect over a struct type pointer that is stored inside an interface value.
packages/reflection/interface/slice
Example shows how to reflect over a slice of struct type values that are stored inside an interface value.
Example shows how to reflect over a slice of struct type values that are stored inside an interface value.
packages/reflection/interface/struct
Example shows how to reflect over a struct type value that is stored inside an interface value.
Example shows how to reflect over a struct type value that is stored inside an interface value.
packages/reflection/tag
Example shows how to reflect on a struct type with tags.
Example shows how to reflect on a struct type with tags.
packages/slices/example1
Sample program shows how to use the BinarySearch APIs from the slices package.
Sample program shows how to use the BinarySearch APIs from the slices package.
packages/slices/example10
Sample program shows how to use the Index API from the slices package.
Sample program shows how to use the Index API from the slices package.
packages/slices/example11
Sample program shows how to use the Insert API from the slices package.
Sample program shows how to use the Insert API from the slices package.
packages/slices/example12
Sample program shows how to use the Sort APIs from the slices package.
Sample program shows how to use the Sort APIs from the slices package.
packages/slices/example13
Sample program shows how to use the Replace API from the slices package.
Sample program shows how to use the Replace API from the slices package.
packages/slices/example2
Sample program shows how to use the Clip API from the slices package.
Sample program shows how to use the Clip API from the slices package.
packages/slices/example3
Sample program shows how to use the Clone API from the slices package.
Sample program shows how to use the Clone API from the slices package.
packages/slices/example4
Sample program shows how to use the Compact APIs from the slices package.
Sample program shows how to use the Compact APIs from the slices package.
packages/slices/example5
Sample program shows how to use the Compare API from the slices package.
Sample program shows how to use the Compare API from the slices package.
packages/slices/example6
Sample program shows how to use the Contains API from the slices package.
Sample program shows how to use the Contains API from the slices package.
packages/slices/example7
Sample program shows how to use the Delete API from the slices package.
Sample program shows how to use the Delete API from the slices package.
packages/slices/example8
Sample program shows how to use the Equal API from the slices package.
Sample program shows how to use the Equal API from the slices package.
packages/slices/example9
Sample program shows how to use the Grow API from the slices package.
Sample program shows how to use the Grow API from the slices package.
profiling/bce
Package bce shows a sample function that does not take into consideration the extra bounds checks that the compiler places in code for integrity.
Package bce shows a sample function that does not take into consideration the extra bounds checks that the compiler places in code for integrity.
profiling/blocking
Sample program to see what a trace will look like for basic channel latencies.
Sample program to see what a trace will look like for basic channel latencies.
profiling/godebug
Sample program that implements a simple web service that will allow us to explore how to use the GODEBUG variable.
Sample program that implements a simple web service that will allow us to explore how to use the GODEBUG variable.
profiling/http_trace/example1
Sample program to show how the httptrace package provides a number of hooks to gather information during an HTTP round trip about a variety of events.
Sample program to show how the httptrace package provides a number of hooks to gather information during an HTTP round trip about a variety of events.
profiling/http_trace/example2
Sample program to show how to use the http trace with a unique Client and Transport.
Sample program to show how to use the http trace with a unique Client and Transport.
profiling/memcpu
Sample program that takes a stream of bytes and looks for the bytes “elvis” and when they are found, replace them with “Elvis”.
Sample program that takes a stream of bytes and looks for the bytes “elvis” and when they are found, replace them with “Elvis”.
profiling/pprof
Sample program that implements a simple web service that will allow us to explore how to use the http/pprof tooling.
Sample program that implements a simple web service that will allow us to explore how to use the http/pprof tooling.
profiling/project
This program provides a sample web service that uses concurrency and channels to perform a coordinated set of asynchronous searches.
This program provides a sample web service that uses concurrency and channels to perform a coordinated set of asynchronous searches.
profiling/project/search
Package search manages the searching of results against different news feeds.
Package search manages the searching of results against different news feeds.
profiling/project/service
Package service maintains the logic for the web service.
Package service maintains the logic for the web service.
profiling/stack_trace/example1
Sample program to show how to read a stack trace.
Sample program to show how to read a stack trace.
profiling/stack_trace/example2
Sample program to show how to read a stack trace when it packs values.
Sample program to show how to read a stack trace when it packs values.
profiling/stack_trace/example3
Sample program that implements a simple web service that will allow us to explore how to look at core dumps.
Sample program that implements a simple web service that will allow us to explore how to look at core dumps.
profiling/trace
Sample program that performs a series of I/O related tasks to better understand tracing in Go.
Sample program that performs a series of I/O related tasks to better understand tracing in Go.
testing/benchmarks/caching
Package caching provides code to show why Data Oriented Design matters.
Package caching provides code to show why Data Oriented Design matters.
testing/benchmarks/cpu-bound
Understanding your workload is critically important in understanding if something can be made concurrent and how complex it is to perform.
Understanding your workload is critically important in understanding if something can be made concurrent and how complex it is to perform.
testing/benchmarks/io-bound
Understanding your workload is critically important in understanding if something can be made concurrent and how complex it is to perform.
Understanding your workload is critically important in understanding if something can be made concurrent and how complex it is to perform.
testing/fuzzing/example1
Package api provides an example on how to use go-fuzz.
Package api provides an example on how to use go-fuzz.
testing/fuzzing/exercises/exercise1
Package fuzzprot provides the ability to unpack user values from our binary protocol.
Package fuzzprot provides the ability to unpack user values from our binary protocol.
testing/strings
Package strings provides some useful string manipulation functions.
Package strings provides some useful string manipulation functions.
testing/strings/example1
Package strings provides some useful string manipulation functions.
Package strings provides some useful string manipulation functions.
testing/strings/example2
Package strings provides some useful string manipulation functions.
Package strings provides some useful string manipulation functions.
testing/strings/example3
Package strings provides some useful string manipulation functions.
Package strings provides some useful string manipulation functions.
testing/strings/example4
Package strings provides some useful string manipulation functions.
Package strings provides some useful string manipulation functions.
testing/tests/example4
Sample program that implements a simple web service.
Sample program that implements a simple web service.
testing/tests/example4/handlers
Package handlers provides the endpoints for the web service.
Package handlers provides the endpoints for the web service.
videos/miki/shorts/expandenv
Use os.ExpandEnv to expand environment variables in a string.
Use os.ExpandEnv to expand environment variables in a string.
videos/miki/shorts/fmt_loc
fmt.Printf can access arguments by location.
fmt.Printf can access arguments by location.
videos/miki/shorts/fold
Use strings.EqualFold for Unicode aware case insensitive comparison.
Use strings.EqualFold for Unicode aware case insensitive comparison.
Dummy DB package
videos/miki/shorts/url_query
Use url.URL to change URLs.
Use url.URL to change URLs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL