Directories ¶ Show internal Expand all Path Synopsis 01 01-Using-Standard-Output 02-Reading-from-Standard-Input 03-Working-with-command-line-arguments 04-About-Error-output 05-Send-info-to-log-files 06-About-log-Fatal 07-About-lig-Panic 08-Writing-to-a-custom-log-file 09-Printing-line-numbers-in-log-file 10-The-error-data-type 11-Error-handling 02 01-Garbage-collection 02-Using-a-slice 03-Using-a-map-with-pointers 04-Using-a-map-without-pointers 05-Splitting-the-map 06-Unsafe-code 07-Another-example-of-the-unsafe-package 08-Calling-C-code-from-Go-using-the-same-file 09-Calling-C-code-from-Go-using-separate-files 10-Calling-Go-functions-from-C-code 11-The-defer-keyword 12-Using-defer-for-logging 13-Panic-and-recover 14-Using-the-panic-function-on-its-own 15-Your-Go-environment 16-Node-trees 03 01-Complex-numbers 02-Integers 03-Floats 04-Multiple-Go-loops 05-Multi-dimensional-arrays 06-Performing-basic-operations-on-slices 07-Slices-are-expanded-automatically 08-The-copy-function 09-Another-example-with-slices 10-Sorting-slices-using-sort-Slice 11-Appending-an-array-to-a-slice 12-Go-maps 13-The-constant-generator-iota 14-Go-pointers 15-Times-and-dates 16-Parsing-times 17-Measuring-execution-time 04 01-Structures 02-Pointers-to-structures 03-Tuples 04-Regular-expressions-and-pattern-matching/01-A-simple-example 04-Regular-expressions-and-pattern-matching/02-A-more-advanced-example 04-Regular-expressions-and-pattern-matching/03-Matching-IPv4-addresses 05-Strings 06-What-is-a-rune 07-The-unicode-package 08-The-strings-package 09-The-switch-statement 10-Calculating-Pi-with-high-accuracy 11-Developing-a-key-value-store-in-Go 12-Go-and-the-JSON-format/01-Reading-JSON-data 12-Go-and-the-JSON-format/02-Saving-JSON-data 12-Go-and-the-JSON-format/03-Using-Marshal-and-Unmarshal 12-Go-and-the-JSON-format/04-Parsing-JSON-data 13-Go-and-XML/01-Read-XML-data 13-Go-and-XML/02-Reading-an-XML-file 13-Go-and-XML/03-Customizing-XML-output 05 01-Binary-trees-in-Go 02-Hash-tables-in-Go 03-Linked-lists-in-Go 04-Doubly-linked-lists-in-Go 05-Queues-in-Go 06-Stacks-in-Go 07-The-container-package/01-Using-container-heap 07-The-container-package/02-Using-container-list 07-The-container-package/03-Using-container-ring 08-Generating-random-numbers 09-Generating-random-strings 10-Generating-secure-random-numbers 11-Performing-matrix-calculations/01-Adding-and-Subtracting-matrices 11-Performing-matrix-calculations/02-Multiplying-matrices 11-Performing-matrix-calculations/03-Dividing-matrices 12-Finding-out-dimensions-of-an-array 13-Solving-Sudoku-puzzles 06 01-Functions-that-return--multiple-values 02-The-returned-values-of-a-function-can-be-named 03-Functions-with-pointer-parameters 04-Functions-that-return-pointers 05-Functions-that-return-other-functions 06-Functions-that-accept-other-functions-as-parameters 07-Variadiac-functions 08-The-init-function 08-The-init-function/a 08-The-init-function/b 09-The-syscall-package 10-The-go_scanner-go_parser-and-go_token-packages/01-The-go_scanner-package 10-The-go_scanner-go_parser-and-go_token-packages/02-The-go_parser-package 11-Text-and-HTML-templates/01-Generate-text-output 11-Text-and-HTML-templates/02-Constructing-HTML-output 07 01-Type-methods 02-Type-accertion 03-Writing-your-own-interfaces/01-Using-a-Go-interface 03-Writing-your-own-interfaces/02-Using-switch-with-interface-and-data-type 03-Writing-your-own-interfaces/myInterface 04-Reflection/01-A-simple-reflection-example 04-Reflection/02-A-more-advanced-reflection-example 05-Object-oriented-programming-in-Go/inheritance 05-Object-oriented-programming-in-Go/oop 06-Create-SQL-migration-script 08 01-The-flag-package/01-Simple-example 01-The-flag-package/02-A-more-realistic-example 02-The-viper-package/01-A-simple-viper-example 02-The-viper-package/02-From-frag-to-viper 02-The-viper-package/03-Reading-JSON-configuration-files-with-viper 02-The-viper-package/04-Reading-YAML-configuration-files-with-viper 03-The-ioReader-and-ioWriter-interfaces/01-Reading-a-text-file-line-by-line 03-The-ioReader-and-ioWriter-interfaces/02-Reading-a-text-file-word-by-word 03-The-ioReader-and-ioWriter-interfaces/03-Reading-a-text-file-character-by-character 03-The-ioReader-and-ioWriter-interfaces/04-Reading-from-dev-random 03-The-ioReader-and-ioWriter-interfaces/05-Reading-a-specific-amount-of-data 03-The-ioReader-and-ioWriter-interfaces/06-Writing-to-a-file 04-The-strings-package-revisited 05-About-the-bytes-package 06-File-permissions 07-Handling-UNIX-signals/01-Handling-two-signals 07-Handling-UNIX-signals/02-Handling-all-signals 08-Programming-Unix-pipes-in-Go/01-Implementing-the-cat-utility-in-Go 08-Programming-Unix-pipes-in-Go/02-About-syscall-PtraceRegs 08-Programming-Unix-pipes-in-Go/03-Tracing-system-calls 08-Programming-Unix-pipes-in-Go/04-User-ID-and-Group-ID 08-Programming-Unix-pipes-in-Go/05-The-Docker-API-and-Go 09 01-Creating-a-goroutine 02-Creating-multiple-goroutines 03-Waiting-for-your-goroutines-to-finish 04-Writing-to-a-channel 05-Reading-from-a-channel 06-Receiving-from-a-closed-channel 07-Pipelines 10 01-The-GOMAXPROCS-environment-variable 02-The-select-keyword 03-Timing-out-a-goroutine-take-1 04-Timing-out-a-goroutine-take-2 05-Buffered-channels 06-Nil-channels 07-Channels-of-channels 08-Specifying-the-order-of-execution-for-your-goroutines 09-Shared-memory-and-shared-variables/01-The-sync-Mutex-type 09-Shared-memory-and-shared-variables/02-The-sync-RWMutex-type 09-Shared-memory-and-shared-variables/03-The-atomic-package 09-Shared-memory-and-shared-variables/04-Sharing-memory-using-goroutines 09-Shared-memory-and-shared-variables/05-Race-detector 09-Shared-memory-and-shared-variables/06-The-context-package/01-A-simple-context-example 09-Shared-memory-and-shared-variables/06-The-context-package/02-An-advanced-example-of-the-context-package 09-Shared-memory-and-shared-variables/06-The-context-package/03-A-slow-server 09-Shared-memory-and-shared-variables/06-The-context-package/04-Another-example-of-the-context-package 09-Shared-memory-and-shared-variables/07-Worker-pools 11 01-Reading-the-configuration-of-network-interfaces 02-Performing-DNS-lookups 03-Getting-the-NS-records-of-a-domain 04-Getting-the-MX-records-of-a-domain 05-Creating-a-web-server 06-Using-the-atomic-package 07-Profiling-an-HTTP-server 08-Creating-a-website-in-Go 09-HTTP-tracing 10-Testing-HTTP-handlers 11-Creating-a-web-client-in-Go 12-Making-your-Go-web-client-more-advanced 13-Timing-out-HTTP-connections 14-Setting-the-timeout-period-on-the-server-side 15-Yet-another-way-to-time-out 16-gRPC-and-Go/client 16-gRPC-and-Go/proto 16-gRPC-and-Go/server 12 01-Working-with-HTTPS-traffic/01-An-HTTPS-client 01-Working-with-HTTPS-traffic/02-A-simple-HTTPS-server 01-Working-with-HTTPS-traffic/03-Developing-a-TLS-server-and-client/client 01-Working-with-HTTPS-traffic/03-Developing-a-TLS-server-and-client/server 02-The-net-standard-Go-package/01-A-TCP-client 02-The-net-standard-Go-package/02-A-slightly-different-version-of-the-TCP-client 02-The-net-standard-Go-package/03-A-TCP-server 02-The-net-standard-Go-package/04-A-slightly-different-version-of-the-TCP-server 02-The-net-standard-Go-package/05-A-UDP-client 02-The-net-standard-Go-package/06-Developing-a-UDP-server 02-The-net-standard-Go-package/07-A-concurrent-TCP-server 02-The-net-standard-Go-package/08-A-handy-conccurent-TCP-server 03-Remote-Procedure-Call/RPCclient 03-Remote-Procedure-Call/RPCserver 03-Remote-Procedure-Call/sharedRPC 13 01-Rotate-Image 02-First-Duplicate 03-First-Non-Repeating-Character 04-Sum-Of-Two 05-Sorted-Squared-Array 06-Find-longest-subarray-by-sum 07-Find-Product-Except-Self 08-Find-Duplicates 09-Find-first-and-last-position-in-sorted-array 10-Maximum-Sum-of-subarray 11-Binary-Search 12-Linear-Search 13-Linked-List 14-Binary-Search-Tree 15-Heaps 16-Stack 17-Queue 18-Interpolation-Search 19-Bubble-Sort 20-Quick-Sort 21-Selection-Sort 22-Insertion-Sort 23-Merge-Sort 24-Pancake-Sort 25-Tower-of-Hanoi 26-Cuboid 27-Trie-data-structure 28-Hash-Tables 29-Graph 30-Dir-Size/concurrent 30-Dir-Size/single 14 01-Remove-Items Click to show internal directories. Click to hide internal directories.