gitextract_uy2gop8w/ ├── .gitignore ├── 01-get-started/ │ ├── README.md │ ├── osx-installation.md │ ├── programmers-roadmap.md │ ├── ubuntu-installation.md │ └── windows-installation.md ├── 02-write-your-first-program/ │ ├── README.md │ ├── annotated-go-program-example.md │ ├── exercises/ │ │ ├── 01-print-names/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ ├── main.go │ └── questions/ │ ├── 01-gopath/ │ │ └── README.md │ ├── 02-code-your-first-program/ │ │ └── README.md │ └── 03-run-your-first-program/ │ └── README.md ├── 03-packages-and-scopes/ │ ├── 01-packages/ │ │ ├── bye.go │ │ ├── hey.go │ │ └── main.go │ ├── 02-scopes/ │ │ ├── 01-scopes/ │ │ │ └── main.go │ │ ├── 02-block-scope/ │ │ │ └── main.go │ │ ├── 03-nested-scope/ │ │ │ └── main.go │ │ └── 04-package-scope/ │ │ ├── bye.go │ │ ├── hey.go │ │ └── main.go │ ├── 03-importing/ │ │ ├── 01-file-scope/ │ │ │ ├── bye.go │ │ │ └── main.go │ │ └── 02-renaming/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-packages/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ ├── bye.go │ │ │ ├── greet.go │ │ │ └── main.go │ │ ├── 02-scopes/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ ├── main.go │ │ │ └── printer.go │ │ ├── 03-importing/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ ├── 01-packages-A/ │ │ └── README.md │ ├── 02-packages-B/ │ │ └── README.md │ └── 03-scopes/ │ └── README.md ├── 04-statements-expressions-comments/ │ ├── 01-statements/ │ │ ├── 01-execution-flow/ │ │ │ └── main.go │ │ └── 02-semicolons/ │ │ └── main.go │ ├── 02-expressions/ │ │ ├── 01-operator/ │ │ │ └── main.go │ │ └── 02-call-expression/ │ │ └── main.go │ ├── 03-comments/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-shy-semicolons/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-naked-expression/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-operators-combine/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-print-go-version/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-comment-out/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 06-use-godoc/ │ │ │ ├── exercise.md │ │ │ └── solution/ │ │ │ └── solution.md │ │ └── README.md │ └── questions/ │ ├── 01-statements/ │ │ └── README.md │ ├── 02-expressions/ │ │ └── README.md │ └── 03-comments/ │ └── README.md ├── 05-write-your-first-library-package/ │ ├── exercise/ │ │ ├── README.md │ │ └── solution/ │ │ └── golang/ │ │ ├── cmd/ │ │ │ └── main.go │ │ └── go.go │ ├── printer/ │ │ ├── cmd/ │ │ │ └── main.go │ │ └── printer.go │ └── questions/ │ └── README.md ├── 06-variables/ │ ├── 01-basic-data-types/ │ │ ├── exercises/ │ │ │ ├── 01-print-the-literals/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 02-print-hexes/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ └── README.md │ │ ├── main.go │ │ └── questions/ │ │ └── README.md │ ├── 02-declarations/ │ │ ├── 01-declaration-syntax/ │ │ │ ├── 01-syntax/ │ │ │ │ └── main.go │ │ │ ├── 02-naming-rules/ │ │ │ │ └── main.go │ │ │ └── 03-order-of-declaration/ │ │ │ └── main.go │ │ ├── 02-example-declarations/ │ │ │ ├── 01-int/ │ │ │ │ └── main.go │ │ │ ├── 02-float64/ │ │ │ │ └── main.go │ │ │ ├── 03-bool/ │ │ │ │ └── main.go │ │ │ └── 04-string/ │ │ │ └── main.go │ │ ├── 03-zero-values/ │ │ │ └── main.go │ │ ├── 04-unused-variables-and-blank-identifier/ │ │ │ ├── 01-unused-variable/ │ │ │ │ └── main.go │ │ │ └── 02-blank-identifier/ │ │ │ └── main.go │ │ ├── 05-multiple-declarations/ │ │ │ ├── 01-multiple/ │ │ │ │ └── main.go │ │ │ └── 02-parallel/ │ │ │ └── main.go │ │ ├── 06-examples/ │ │ │ └── main.go │ │ ├── exercises/ │ │ │ ├── 01-int/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 02-bool/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 03-float64/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 04-string/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 05-undeclarables/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 06-with-bits/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 07-multiple/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 08-multiple-2/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 09-unused/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 10-package-variable/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 11-wrong-doer/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ └── README.md │ │ └── questions/ │ │ ├── 01-what/ │ │ │ └── README.md │ │ ├── 02-declaration/ │ │ │ └── README.md │ │ ├── 03-unused-variables/ │ │ │ └── README.md │ │ └── 04-zero-values/ │ │ └── README.md │ ├── 03-short-declaration/ │ │ ├── 01-initialization-and-short-declaration/ │ │ │ ├── 01-initialization/ │ │ │ │ └── main.go │ │ │ ├── 02-short-declaration/ │ │ │ │ └── main.go │ │ │ └── 03-coding-example/ │ │ │ └── main.go │ │ ├── 02-package-scope/ │ │ │ └── main.go │ │ ├── 03-multiple-short-declaration/ │ │ │ ├── 01-declaration/ │ │ │ │ └── main.go │ │ │ ├── 02-coding-example/ │ │ │ │ └── main.go │ │ │ └── 03-redeclaration/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ └── 02-coding-example/ │ │ │ └── main.go │ │ ├── 04-short-vs-normal/ │ │ │ ├── 01-declaration/ │ │ │ │ └── main.go │ │ │ └── 02-short-declaration/ │ │ │ └── main.go │ │ ├── exercises/ │ │ │ ├── 01-short-declare/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 02-multiple-short-declare/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 03-multiple-short-declare-2/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 04-short-with-expression/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 05-short-discard/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 06-redeclare/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ └── README.md │ │ └── questions/ │ │ └── README.md │ ├── 04-assignment/ │ │ ├── 01-assignment/ │ │ │ ├── 01-assignment/ │ │ │ │ └── main.go │ │ │ ├── 02-strongly-typed/ │ │ │ │ └── main.go │ │ │ └── 03-examples/ │ │ │ └── main.go │ │ ├── 01-overview/ │ │ │ └── main.go │ │ ├── 05-multiple-assignment/ │ │ │ └── main.go │ │ ├── 06-swapping/ │ │ │ └── main.go │ │ ├── 07-path-project/ │ │ │ └── main.go │ │ ├── 08-path-project-discarding/ │ │ │ └── main.go │ │ ├── 09-path-project-shortdecl/ │ │ │ └── main.go │ │ ├── exercises/ │ │ │ ├── 01-make-it-blue/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 02-vars-to-vars/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 03-assign-with-expressions/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 04-find-the-rectangle-perimeter/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 05-multi-assign/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 06-multi-assign-2/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 07-multi-short-func/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 08-swapper/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 09-swapper-2/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 10-discard-the-file/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ └── README.md │ │ └── questions/ │ │ └── README.md │ ├── 05-type-conversion/ │ │ ├── 01-destructive/ │ │ │ └── main.go │ │ ├── 02-correct/ │ │ │ └── main.go │ │ ├── 03-numeric-conversion/ │ │ │ └── main.go │ │ ├── exercises/ │ │ │ ├── 01-convert-and-fix/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 02-convert-and-fix-2/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 03-convert-and-fix-3/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 04-convert-and-fix-4/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 05-convert-and-fix-5/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ └── README.md │ │ └── questions/ │ │ └── questions.md │ └── 06-project-greeter/ │ ├── 01-demonstration/ │ │ └── main.go │ ├── 02-version1/ │ │ └── main.go │ ├── 03-version2/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-count-arguments/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-print-the-path/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-print-your-name/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-greet-more-people/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-greet-5-people/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── README.md │ │ └── solution-to-the-lecture-exercise/ │ │ └── main.go │ └── questions/ │ └── questions.md ├── 07-printf/ │ ├── 01-intro/ │ │ ├── 01-println-vs-printf/ │ │ │ └── main.go │ │ └── 02/ │ │ └── main.go │ ├── 02-escape-sequences/ │ │ └── main.go │ ├── 03-printing-types/ │ │ └── main.go │ ├── 04-coding/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-print-your-age/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-print-your-name-and-lastname/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-false-claims/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-print-the-temperature/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-double-quotes/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 06-print-the-type/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 07-print-the-type-2/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 08-print-the-type-3/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 09-print-the-type-4/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 10-print-your-fullname/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ └── questions.md ├── 08-numbers-and-strings/ │ ├── 01-numbers/ │ │ ├── 01-arithmetic-operators/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ ├── 02/ │ │ │ │ └── main.go │ │ │ └── 03-float-inaccuracy/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ ├── 02/ │ │ │ │ └── main.go │ │ │ └── 03/ │ │ │ └── main.go │ │ ├── 02-arithmetic-operators-examples/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ └── 02/ │ │ │ └── main.go │ │ ├── 03-precedence/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ ├── 02/ │ │ │ │ └── main.go │ │ │ ├── 03/ │ │ │ │ └── main.go │ │ │ └── 04/ │ │ │ └── main.go │ │ ├── 04-incdec-statement/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ ├── 02/ │ │ │ │ └── main.go │ │ │ └── 03/ │ │ │ └── main.go │ │ ├── 05-assignment-operations/ │ │ │ └── main.go │ │ ├── 06-project-feet-to-meters/ │ │ │ ├── exercise-solution/ │ │ │ │ └── main.go │ │ │ └── main.go │ │ ├── exercises/ │ │ │ ├── 01-do-some-calculations/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 02-fix-the-float/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 03-precedence/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 04-incdecs/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 05-manipulate-a-counter/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 06-simplify-the-assignments/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 07-circle-area/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 08-sphere-area/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 09-sphere-volume/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ └── README.md │ │ └── questions/ │ │ ├── 01-arithmetic-operators.md │ │ ├── 02-precedence.md │ │ └── 03-assignment-operations.md │ └── 02-strings/ │ ├── 01-raw-string-literal/ │ │ └── main.go │ ├── 02-concatenation/ │ │ ├── 01/ │ │ │ └── main.go │ │ ├── 02-assignment-operation/ │ │ │ └── main.go │ │ └── 03-concat-non-strings/ │ │ └── main.go │ ├── 03-string-length/ │ │ ├── 01-len/ │ │ │ └── main.go │ │ └── 02-unicode-len/ │ │ └── main.go │ ├── 04-project-banger/ │ │ ├── exercise-solution/ │ │ │ └── main.go │ │ └── main.go │ ├── README.md │ ├── exercises/ │ │ ├── 01-windows-path/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-print-json/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-raw-concat/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-count-the-chars/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-improved-banger/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 06-tolowercase/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 07-trim-it/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── 08-right-trim-it/ │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ └── questions/ │ └── questions.md ├── 09-go-type-system/ │ ├── 01-bits/ │ │ └── main.go │ ├── 02-bytes/ │ │ └── main.go │ ├── 03-predeclared-types/ │ │ └── main.go │ ├── 04-overflow/ │ │ ├── 01-problem/ │ │ │ └── main.go │ │ ├── 02-explain/ │ │ │ └── main.go │ │ └── 03-destructive/ │ │ └── main.go │ ├── 05-defined-types/ │ │ ├── 01-duration-example/ │ │ │ └── main.go │ │ ├── 02-type-definition-create-your-own-type/ │ │ │ └── main.go │ │ └── 03-underlying-types/ │ │ ├── main.go │ │ └── weights/ │ │ └── weights.go │ ├── 06-aliased-types/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-optimal-types/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-the-type-problem/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-parse-arg-numbers/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-time-multiplier/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-refactor-feet-to-meter/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 06-convert-the-types/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ ├── 01-questions-predeclared-types.md │ └── 02-questions-defined-types.md ├── 10-constants/ │ ├── 01-declarations/ │ │ ├── 01-syntax/ │ │ │ ├── 01-magic-numbers/ │ │ │ │ └── main.go │ │ │ ├── 02-constants/ │ │ │ │ └── main.go │ │ │ ├── 03-safety/ │ │ │ │ └── main.go │ │ │ └── 04-rules/ │ │ │ ├── 01-immutability/ │ │ │ │ └── main.go │ │ │ ├── 02-runtime-func/ │ │ │ │ └── main.go │ │ │ ├── 03-runtime-var/ │ │ │ │ └── main.go │ │ │ └── 04-len/ │ │ │ └── main.go │ │ ├── 02-constant-types-and-expressions/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ ├── 02/ │ │ │ │ └── main.go │ │ │ └── 03/ │ │ │ └── main.go │ │ └── 03-multiple-declaration/ │ │ ├── 01/ │ │ │ └── main.go │ │ ├── 02/ │ │ │ └── main.go │ │ └── 03/ │ │ └── main.go │ ├── 02-typeless-constants/ │ │ ├── 01-typeless-constants/ │ │ │ └── main.go │ │ ├── 02-typed-vs-typeless/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ ├── 02/ │ │ │ │ └── main.go │ │ │ ├── 03/ │ │ │ │ └── main.go │ │ │ └── 04/ │ │ │ └── main.go │ │ ├── 03-default-type/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ ├── 02/ │ │ │ │ └── main.go │ │ │ ├── 03/ │ │ │ │ └── main.go │ │ │ ├── 04/ │ │ │ │ └── main.go │ │ │ └── 05/ │ │ │ └── main.go │ │ └── 04-demo/ │ │ ├── 01/ │ │ │ └── main.go │ │ └── 02/ │ │ └── main.go │ ├── 03-refactor-feet-to-meters/ │ │ ├── main.go │ │ └── solution/ │ │ ├── main.go │ │ └── without-comments/ │ │ └── main.go │ ├── 04-iota/ │ │ ├── 01-manually/ │ │ │ └── main.go │ │ ├── 02-with-iota/ │ │ │ └── main.go │ │ ├── 03-expressions/ │ │ │ └── main.go │ │ └── 04-blank-identifier/ │ │ ├── 01/ │ │ │ └── main.go │ │ ├── 02/ │ │ │ └── main.go │ │ └── 03/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-minutes-in-weeks/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-remove-the-magic/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-constant-length/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-tau/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-area/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 06-no-conversions-allowed/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 07-iota-months/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 08-iota-months-2/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 09-iota-seasons/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ └── questions.md ├── 11-if/ │ ├── 01-boolean-operators/ │ │ ├── 01-comparison-operators/ │ │ │ └── main.go │ │ ├── 02-comparison-and-assignability/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ ├── 02/ │ │ │ │ └── main.go │ │ │ └── 03/ │ │ │ └── main.go │ │ └── 03-logical-operators/ │ │ ├── 01-and-operator/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ └── 02/ │ │ │ └── main.go │ │ ├── 02-or-operator/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ └── 02/ │ │ │ └── main.go │ │ └── 03-not-operator/ │ │ ├── 01/ │ │ │ └── main.go │ │ └── 02/ │ │ └── main.go │ ├── 02-if-statement/ │ │ ├── 01-if-branch/ │ │ │ └── main.go │ │ ├── 02-else-branch/ │ │ │ └── main.go │ │ ├── 03-else-if-branch/ │ │ │ ├── 01/ │ │ │ │ └── main.go │ │ │ └── 02/ │ │ │ └── main.go │ │ ├── 04-refactor-feet-to-meters/ │ │ │ └── main.go │ │ └── 05-challenge-userpass/ │ │ ├── 01-1st-challenge/ │ │ │ ├── 01-challenge/ │ │ │ │ └── main.go │ │ │ ├── 02-solution/ │ │ │ │ └── main.go │ │ │ └── 03-solution-refactor/ │ │ │ └── main.go │ │ └── 02-2nd-challenge/ │ │ ├── 01-challenge/ │ │ │ └── main.go │ │ └── 02-solution/ │ │ └── main.go │ ├── 03-error-handling/ │ │ ├── 01-itoa/ │ │ │ └── main.go │ │ ├── 02-atoi/ │ │ │ └── main.go │ │ ├── 03-atoi-error-handling/ │ │ │ └── main.go │ │ └── 04-challenge-feet-to-meters/ │ │ ├── 01-challenge/ │ │ │ └── main.go │ │ └── 02-solution/ │ │ └── main.go │ ├── 04-short-if/ │ │ ├── 01-without-short-if/ │ │ │ └── main.go │ │ ├── 02-with-short-if/ │ │ │ └── main.go │ │ ├── 03-scope/ │ │ │ └── main.go │ │ └── 04-scope-shadowing/ │ │ ├── 01-shadowing/ │ │ │ └── main.go │ │ └── 02-shadowing-solution/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-age-seasons/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-simplify-it/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-arg-count/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-vowel-or-cons/ │ │ │ ├── main.go │ │ │ ├── solution/ │ │ │ │ └── main.go │ │ │ └── solution2/ │ │ │ └── main.go │ │ ├── 05-movie-ratings/ │ │ │ ├── main.go │ │ │ ├── solution/ │ │ │ │ └── main.go │ │ │ └── solution2/ │ │ │ └── main.go │ │ ├── 06-odd-even/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 07-leap-year/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 08-simplify-leap-year/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 09-days-in-month/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ ├── 1-comparison-operators.md │ ├── 2-logical-operators.md │ ├── 3-if.md │ ├── 4-error-handling.md │ └── 5-short-if.md ├── 12-switch/ │ ├── 01-one-case/ │ │ └── main.go │ ├── 02-multiple-cases/ │ │ └── main.go │ ├── 03-default-clause/ │ │ └── main.go │ ├── 04-multiple-conditions/ │ │ └── main.go │ ├── 05-bool-expressions/ │ │ └── main.go │ ├── 06-fallthrough/ │ │ ├── 01-without/ │ │ │ └── main.go │ │ └── 02-with/ │ │ └── main.go │ ├── 07-short-switch/ │ │ └── main.go │ ├── 08-parts-of-the-day/ │ │ └── main.go │ ├── 09-when-to-use/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-richter-scale/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-richter-scale-2/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-convert/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-string-manipulator/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-days-in-month/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ └── questions.md ├── 13-loops/ │ ├── 01-basics/ │ │ └── main.go │ ├── 02-break/ │ │ └── main.go │ ├── 03-continue/ │ │ ├── 01-a-before/ │ │ │ └── main.go │ │ └── 01-b-after/ │ │ └── main.go │ ├── 04-nested-loops-multiplication-table/ │ │ └── main.go │ ├── 05-for-range/ │ │ ├── 01-loop-over-slices/ │ │ │ └── main.go │ │ └── 02-loop-over-words/ │ │ └── main.go │ ├── 06-project-lucky-number-game/ │ │ ├── 01-randomization/ │ │ │ └── main.go │ │ └── 02-game/ │ │ └── main.go │ ├── 07-project-word-finder/ │ │ └── main.go │ ├── 08-word-finder-labeled-break/ │ │ └── main.go │ ├── 09-word-finder-labeled-continue/ │ │ └── main.go │ ├── 10-word-finder-labeled-switch/ │ │ └── main.go │ ├── 11-goto/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-basics.md │ │ ├── 01-sum-the-numbers/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-multiplication-table.md │ │ ├── 02-sum-the-numbers-verbose/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-lucky-number.md │ │ ├── 03-sum-up-to-n/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-only-evens/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-word-finder.md │ │ ├── 05-break-up/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-crunch-the-primes.md │ │ ├── 06-infinite-kill/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 07-multiplication-table-exercises/ │ │ │ ├── 01-dynamic-table/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ └── 02-math-tables/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 08-lucky-number-exercises/ │ │ │ ├── 01-first-turn-winner/ │ │ │ │ ├── main.go │ │ │ │ ├── solution/ │ │ │ │ │ └── main.go │ │ │ │ └── solution-better/ │ │ │ │ └── main.go │ │ │ ├── 02-random-messages/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 03-double-guesses/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 04-verbose-mode/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 05-enough-picks/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ └── 06-dynamic-difficulty/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 09-word-finder-exercises/ │ │ │ ├── 01-case-insensitive/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ └── 02-path-searcher/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 10-crunch-the-primes/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ ├── 01-loops.md │ ├── 02-randomization.md │ └── 03-labeled-statements.md ├── 14-arrays/ │ ├── 01-whats-an-array/ │ │ └── main.go │ ├── 02-examples-1-hipsters-love-bookstore/ │ │ └── main.go │ ├── 03-examples-2-hipsters-love-bookstore/ │ │ └── main.go │ ├── 04-array-literal/ │ │ └── main.go │ ├── 05-examples-3-hipsters-love-bookstore/ │ │ └── main.go │ ├── 06-challenge-moodly/ │ │ ├── challenge/ │ │ │ └── main.go │ │ └── solution/ │ │ └── main.go │ ├── 07-compare/ │ │ └── main.go │ ├── 08-assignment/ │ │ ├── 01/ │ │ │ └── main.go │ │ └── 02-example/ │ │ └── main.go │ ├── 09-multi-dimensional/ │ │ └── main.go │ ├── 10-challenge-moodly-2/ │ │ ├── challenge/ │ │ │ └── main.go │ │ └── solution/ │ │ └── main.go │ ├── 11-keyed-elements/ │ │ ├── 01-unkeyed/ │ │ │ └── main.go │ │ ├── 02-keyed/ │ │ │ └── main.go │ │ ├── 03-keyed-order/ │ │ │ └── main.go │ │ ├── 04-keyed-auto-initialize/ │ │ │ └── main.go │ │ ├── 05-keyed-auto-initialize-ellipsis/ │ │ │ └── main.go │ │ ├── 06-keyed-and-unkeyed/ │ │ │ └── main.go │ │ └── 07-xratio-example/ │ │ ├── 01-without-keys/ │ │ │ └── main.go │ │ └── 02-with-keys/ │ │ └── main.go │ ├── 12-compare-unnamed/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-declare-empty/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-get-set-arrays/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-array-literal/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-ellipsis/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-fix/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 06-compare/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 07-assign/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 08-wizard-printer/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 09-currency-converter/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 10-hipsters-love-search/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 11-average/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 12-sorter/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 13-word-finder/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ ├── 1-array-basics.md │ ├── 2-arrays.md │ └── README.md ├── 15-project-retro-led-clock/ │ ├── 01-printing-the-digits/ │ │ ├── README.md │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ ├── 02-printing-the-clock/ │ │ ├── README.md │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ ├── 03-animating-the-clock/ │ │ ├── README.md │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ ├── 04-blinking-the-separators/ │ │ ├── README.md │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ ├── 05-full-annotated-solution/ │ │ └── main.go │ ├── README.md │ └── exercises/ │ ├── 01-refactor/ │ │ ├── main.go │ │ └── solution/ │ │ ├── main.go │ │ └── placeholders.go │ ├── 02-alarm/ │ │ ├── main.go │ │ ├── placeholders.go │ │ └── solution/ │ │ ├── main.go │ │ └── placeholders.go │ ├── 03-split-second/ │ │ ├── main.go │ │ ├── placeholders.go │ │ └── solution/ │ │ ├── main.go │ │ └── placeholders.go │ ├── 04-ticker/ │ │ ├── main.go │ │ ├── placeholders.go │ │ └── solution/ │ │ ├── main.go │ │ └── placeholders.go │ └── README.md ├── 16-slices/ │ ├── 01-slices-vs-arrays/ │ │ └── main.go │ ├── 02-slices-vs-arrays/ │ │ └── main.go │ ├── 03-slices-vs-arrays-examples/ │ │ └── main.go │ ├── 04-slices-vs-arrays-unique-nums/ │ │ ├── 01-with-arrays/ │ │ │ └── main.go │ │ └── 02-with-slices/ │ │ └── main.go │ ├── 05-append/ │ │ ├── 1-theory/ │ │ │ └── main.go │ │ └── 2-example/ │ │ └── main.go │ ├── 06-slice-expressions/ │ │ ├── 1-theory/ │ │ │ └── main.go │ │ └── 2-example/ │ │ └── main.go │ ├── 07-slice-expressions-pagination/ │ │ └── main.go │ ├── 08-slice-internals-1-backing-array/ │ │ ├── 1-theory/ │ │ │ └── main.go │ │ └── 2-example/ │ │ └── main.go │ ├── 09-slice-internals-2-slice-header/ │ │ ├── 1-theory/ │ │ │ └── main.go │ │ └── 2-example/ │ │ └── main.go │ ├── 10-slice-internals-3-len-cap/ │ │ ├── 1-theory/ │ │ │ └── main.go │ │ └── 2-example/ │ │ └── main.go │ ├── 11-slice-internals-4-append/ │ │ ├── 1-theory/ │ │ │ └── main.go │ │ ├── 2-example/ │ │ │ └── main.go │ │ ├── 3-example-growth/ │ │ │ └── main.go │ │ └── 4-example-growth/ │ │ └── main.go │ ├── 12-full-slice-expressions/ │ │ ├── 1-theory/ │ │ │ └── main.go │ │ └── 2-example/ │ │ └── main.go │ ├── 13-make/ │ │ ├── 1-theory/ │ │ │ └── main.go │ │ └── 2-example/ │ │ └── main.go │ ├── 14-copy/ │ │ ├── 01-usage/ │ │ │ └── main.go │ │ └── 02-hacker-incident/ │ │ └── main.go │ ├── 15-multi-dimensional-slices/ │ │ ├── version-1/ │ │ │ └── main.go │ │ ├── version-2/ │ │ │ └── main.go │ │ └── version-3/ │ │ └── main.go │ ├── README.md │ ├── exercises/ │ │ ├── 01-declare-nil/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-empty/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-slice-literal/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-declare-arrays-as-slices/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-fix-the-problems/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 06-compare-the-slices/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 07-append/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 08-append-2/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 09-append-3-fix/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 10-append-sort-nums/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 11-housing-prices/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 12-housing-prices-averages/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 13-slicing-basics/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 14-slicing-by-args/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 15-slicing-housing-prices/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 16-internals-backing-array-fix/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 17-internals-backing-array-sort/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 18-internals-slice-header/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 19-observe-len-cap/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 20-observe-the-cap-growth/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 21-correct-the-lyric/ │ │ │ ├── hints.md │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 22-adv-ops-practice/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 23-limit-the-backing-array-sharing/ │ │ │ ├── api/ │ │ │ │ └── api.go │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ ├── api/ │ │ │ │ └── api.go │ │ │ └── main.go │ │ ├── 24-fix-the-memory-leak/ │ │ │ ├── api/ │ │ │ │ └── api.go │ │ │ ├── hints.md │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ ├── api/ │ │ │ │ └── api.go │ │ │ └── main.go │ │ ├── 25-add-lines/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 26-print-daily-requests/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ ├── 1-slices-vs-arrays.md │ ├── 2-appending.md │ ├── 3-slicing.md │ ├── 4-backing-array.md │ ├── 5-slice-header.md │ ├── 6-capacity.md │ ├── 7-mechanics-of-append.md │ ├── 8-advanced-ops.md │ └── README.md ├── 17-project-empty-file-finder/ │ ├── 01-fetch-the-files/ │ │ ├── files/ │ │ │ ├── empty1.txt │ │ │ ├── empty2.txt │ │ │ ├── empty3.txt │ │ │ ├── nonEmpty1.txt │ │ │ ├── nonEmpty2.txt │ │ │ └── nonEmpty3.txt │ │ └── main.go │ ├── 02-write-to-a-file/ │ │ ├── files/ │ │ │ ├── empty1.txt │ │ │ ├── empty2.txt │ │ │ ├── empty3.txt │ │ │ ├── nonEmpty1.txt │ │ │ ├── nonEmpty2.txt │ │ │ └── nonEmpty3.txt │ │ └── main.go │ ├── 03-optimize/ │ │ ├── files/ │ │ │ ├── empty1.txt │ │ │ ├── empty2.txt │ │ │ ├── empty3.txt │ │ │ ├── nonEmpty1.txt │ │ │ ├── nonEmpty2.txt │ │ │ └── nonEmpty3.txt │ │ └── main.go │ └── exercises/ │ ├── 1-sort-to-a-file/ │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ ├── 2-sort-to-a-file-2/ │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ ├── 3-print-directories/ │ │ ├── main.go │ │ └── solution/ │ │ ├── dir/ │ │ │ ├── .gitignore │ │ │ ├── subdir1/ │ │ │ │ └── .gitignore │ │ │ └── subdir2/ │ │ │ └── .gitignore │ │ ├── dir2/ │ │ │ ├── .gitignore │ │ │ ├── subdir1/ │ │ │ │ └── .gitignore │ │ │ ├── subdir2/ │ │ │ │ └── .gitignore │ │ │ └── subdir3/ │ │ │ └── .gitignore │ │ ├── dirs.txt │ │ └── main.go │ └── README.md ├── 18-project-bouncing-ball/ │ ├── 01-draw-the-board/ │ │ └── main.go │ ├── 02-add-a-buffer/ │ │ └── main.go │ ├── 03-animate/ │ │ └── main.go │ ├── README.md │ └── exercises/ │ ├── 01-find-the-bug/ │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ ├── 02-width-and-height/ │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ ├── 03-previous-positions/ │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ ├── 04-single-dimensional/ │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ ├── 05-no-slice/ │ │ ├── main.go │ │ └── solution/ │ │ └── main.go │ └── README.md ├── 19-strings-runes-bytes/ │ ├── 01-bytes-runes-strings-basics/ │ │ └── main.go │ ├── 02-bytes-runes-strings-charset-table/ │ │ └── main.go │ ├── 03-bytes-runes-strings-examples/ │ │ └── main.go │ ├── 04-rune-decoding/ │ │ ├── 01/ │ │ │ └── main.go │ │ └── 02/ │ │ ├── benchmarks/ │ │ │ └── main.go │ │ └── main.go │ ├── 05-internals/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-convert/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-print-the-runes/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-rune-manipulator/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ └── README.md ├── 20-project-spam-masker/ │ ├── 01-step-1/ │ │ ├── main.go │ │ └── spam.txt │ ├── 02-step-2/ │ │ ├── main.go │ │ └── spam.txt │ ├── 03-step-2-no-append/ │ │ ├── main.go │ │ └── spam.txt │ └── README.md ├── 21-project-text-wrapper/ │ ├── README.md │ ├── main.go │ └── story.txt ├── 22-maps/ │ ├── 01-english-dict/ │ │ ├── 01-as-a-slice/ │ │ │ └── main.go │ │ └── 02-as-a-map/ │ │ └── main.go │ ├── 02-english-dict-map-populate/ │ │ └── main.go │ ├── 03-internals-cloning/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-warm-up/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-populate/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-students/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ └── README.md ├── 23-input-scanning/ │ ├── 01-scanning/ │ │ ├── main.go │ │ └── proverbs.txt │ ├── 02-map-as-sets/ │ │ ├── main.go │ │ └── shakespeare.txt │ ├── 03-project-log-parser/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ └── main.go │ ├── exercises/ │ │ ├── 01-uppercaser/ │ │ │ ├── main.go │ │ │ ├── shakespeare.txt │ │ │ └── solution/ │ │ │ ├── main.go │ │ │ └── shakespeare.txt │ │ ├── 02-unique-words/ │ │ │ ├── main.go │ │ │ ├── shakespeare.txt │ │ │ └── solution/ │ │ │ ├── main.go │ │ │ └── shakespeare.txt │ │ ├── 03-unique-words-2/ │ │ │ ├── main.go │ │ │ ├── shakespeare.txt │ │ │ └── solution/ │ │ │ ├── main.go │ │ │ └── shakespeare.txt │ │ ├── 04-grep/ │ │ │ ├── main.go │ │ │ ├── shakespeare.txt │ │ │ └── solution/ │ │ │ ├── main.go │ │ │ └── shakespeare.txt │ │ ├── 05-quit/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 06-log-parser/ │ │ │ ├── log.txt │ │ │ ├── log_err_missing.txt │ │ │ ├── log_err_negative.txt │ │ │ ├── log_err_str.txt │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ └── README.md ├── 24-structs/ │ ├── 01-intro/ │ │ └── main.go │ ├── 02-basics/ │ │ └── main.go │ ├── 03-compare-assign/ │ │ └── main.go │ ├── 04-embedding/ │ │ └── main.go │ ├── 05-project-log-parser-structs/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ └── main.go │ ├── 06-encoding/ │ │ └── main.go │ ├── 07-decoding/ │ │ ├── main.go │ │ └── users.json │ ├── 08-decoding-2/ │ │ ├── main.go │ │ └── users.json │ ├── exercises/ │ │ ├── 01-warmup/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-list/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-query-by-id/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-encode/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-decode/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── questions/ │ └── README.md ├── 25-functions/ │ ├── 01-basics/ │ │ ├── bad.go │ │ └── main.go │ ├── 02-basics/ │ │ └── main.go │ ├── 03-refactor-to-funcs/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ ├── main.go │ │ └── parser.go │ ├── 04-pass-by-value-semantics/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ ├── main.go │ │ └── parser.go │ ├── exercises/ │ │ ├── README.md │ │ ├── refactor-to-funcs-1/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ ├── games.go │ │ │ └── main.go │ │ ├── refactor-to-funcs-2/ │ │ │ ├── games.go │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ ├── commands.go │ │ │ ├── games.go │ │ │ └── main.go │ │ ├── refactor-to-funcs-3/ │ │ │ ├── commands.go │ │ │ ├── games.go │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ ├── commands.go │ │ │ ├── games.go │ │ │ └── main.go │ │ └── rewrite-log-parser-using-funcs/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ └── main.go │ └── questions/ │ └── README.md ├── 26-pointers/ │ ├── 01-pointers/ │ │ └── main.go │ ├── 02-pointers-basic-examples/ │ │ └── main.go │ ├── 03-pointers-composites/ │ │ └── main.go │ ├── 04-log-parser-pointers/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ ├── main.go │ │ └── parser.go │ ├── 05-log-parser-pointers-vs-values/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ ├── main.go │ │ └── parser.go │ ├── exercises/ │ │ ├── 01-basics/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 02-swap/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 03-fix-the-crash/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 04-simplify/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── 05-log-parser/ │ │ │ ├── log.txt │ │ │ ├── log_err_missing.txt │ │ │ ├── log_err_negative.txt │ │ │ ├── log_err_str.txt │ │ │ ├── main.go │ │ │ └── parser.go │ │ └── README.md │ └── questions/ │ └── README.md ├── LICENSE ├── README.md ├── advfuncs/ │ ├── 01-variadic-funcs/ │ │ └── main.go │ ├── 02-func-values/ │ │ └── main.go │ ├── 03-func-to-func/ │ │ └── main.go │ ├── 04-closures/ │ │ └── main.go │ ├── 05-higher-order-funcs/ │ │ └── main.go │ ├── 06-functional-programming/ │ │ └── main.go │ ├── 07-deferred-funcs/ │ │ └── main.go │ ├── 08-png-detector/ │ │ └── main.go │ ├── 08-png-detector-with-panic/ │ │ └── main.go │ ├── 10-image-detector-recover/ │ │ └── main.go │ ├── 10b-named-params/ │ │ └── main.go │ ├── exercises/ │ │ ├── 01-refactor/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ └── README.md │ └── new/ │ └── 01-intro/ │ ├── funcval/ │ │ └── main.go │ └── passfunc/ │ └── main.go ├── assets/ │ └── database.json ├── concurrency/ │ └── xxx-monte-carlo/ │ └── main.go ├── etc/ │ ├── FIX.md │ └── stratch/ │ └── main.go ├── first/ │ ├── README.md │ ├── explain/ │ │ ├── comments/ │ │ │ └── main.go │ │ ├── expressions/ │ │ │ ├── 01-operator/ │ │ │ │ └── main.go │ │ │ ├── 02-call-expression/ │ │ │ │ └── main.go │ │ │ └── README │ │ ├── importing/ │ │ │ ├── 01-file-scope/ │ │ │ │ └── main.go │ │ │ └── 02-renaming/ │ │ │ └── main.go │ │ ├── packages/ │ │ │ ├── scopes/ │ │ │ │ ├── bye.go │ │ │ │ ├── hey.go │ │ │ │ └── main.go │ │ │ └── what/ │ │ │ ├── bye.go │ │ │ ├── hey.go │ │ │ └── main.go │ │ ├── scopes/ │ │ │ ├── 01-scopes/ │ │ │ │ └── main.go │ │ │ ├── 02-block-scope/ │ │ │ │ └── main.go │ │ │ └── 03-nested-scope/ │ │ │ └── main.go │ │ └── statements/ │ │ ├── 01-execution-flow/ │ │ │ └── main.go │ │ └── 02-semicolons/ │ │ └── main.go │ ├── first/ │ │ ├── exercises/ │ │ │ └── 01/ │ │ │ ├── main.go │ │ │ └── solution/ │ │ │ └── main.go │ │ ├── main.go │ │ └── questions/ │ │ ├── 01-code-your-first-program-questions.md │ │ └── 02-run-your-first-program-questions.md │ ├── printer/ │ │ ├── cmd/ │ │ │ └── main.go │ │ └── printer.go │ └── printer-exercise/ │ └── solution/ │ └── golang/ │ ├── cmd/ │ │ └── main.go │ └── go.go ├── go.mod ├── go.sum ├── interfaces/ │ ├── 01-methods/ │ │ ├── book.go │ │ ├── game.go │ │ └── main.go │ ├── 02-receivers/ │ │ ├── book.go │ │ ├── game.go │ │ ├── huge.go │ │ └── main.go │ ├── 03-nonstructs/ │ │ ├── book.go │ │ ├── game.go │ │ ├── list.go │ │ ├── main.go │ │ └── money.go │ ├── 04-interfaces/ │ │ ├── book.go │ │ ├── game.go │ │ ├── list.go │ │ ├── main.go │ │ ├── money.go │ │ ├── power/ │ │ │ ├── blender.go │ │ │ ├── kettle.go │ │ │ ├── main.go │ │ │ ├── mixer.go │ │ │ ├── player.go │ │ │ └── socket.go │ │ └── puzzle.go │ ├── 05-type-assertion/ │ │ ├── book.go │ │ ├── game.go │ │ ├── list.go │ │ ├── main.go │ │ ├── money.go │ │ ├── puzzle.go │ │ └── toy.go │ ├── 06-empty-interface/ │ │ ├── book.go │ │ ├── empty/ │ │ │ └── main.go │ │ ├── empty2/ │ │ │ └── main.go │ │ ├── game.go │ │ ├── list.go │ │ ├── main.go │ │ ├── money.go │ │ ├── puzzle.go │ │ └── toy.go │ ├── 07-type-switch/ │ │ ├── book.go │ │ ├── game.go │ │ ├── list.go │ │ ├── main.go │ │ ├── money.go │ │ ├── puzzle.go │ │ └── toy.go │ ├── 08-promoted-methods/ │ │ ├── book.go │ │ ├── game.go │ │ ├── list.go │ │ ├── main.go │ │ ├── money.go │ │ ├── product.go │ │ ├── puzzle.go │ │ └── toy.go │ ├── 09-little-refactor/ │ │ ├── list.go │ │ ├── main.go │ │ ├── money.go │ │ ├── product.go │ │ └── timestamp.go │ ├── 10-stringer/ │ │ ├── _handlemethods.go │ │ ├── list.go │ │ ├── main.go │ │ ├── money.go │ │ ├── product.go │ │ └── timestamp.go │ ├── 11-sort/ │ │ ├── list.go │ │ ├── main.go │ │ ├── money.go │ │ ├── product.go │ │ └── timestamp.go │ ├── 12-marshaler/ │ │ ├── database.json │ │ ├── list.go │ │ ├── main.go │ │ ├── money.go │ │ ├── product.go │ │ └── timestamp.go │ ├── 13-io/ │ │ ├── alice.txt │ │ └── main.go │ ├── 14-io-reusable/ │ │ └── main.go │ ├── 15-png-detector/ │ │ ├── .gitignore │ │ └── main.go │ ├── 16-io-compose/ │ │ ├── .gitignore │ │ └── main.go │ ├── 17-write-an-io-reader/ │ │ ├── .gitignore │ │ ├── main.go │ │ └── reader.go │ └── 18-testing/ │ ├── .gitignore │ ├── main.go │ ├── reader.go │ └── reader_test.go ├── logparser/ │ ├── functional/ │ │ ├── Makefile │ │ ├── chartwriter.go │ │ ├── field.go │ │ ├── filters.go │ │ ├── groupers.go │ │ ├── main.go │ │ ├── pipeline.go │ │ ├── result.go │ │ ├── textreader.go │ │ └── textwriter.go │ ├── logs/ │ │ ├── Makefile │ │ ├── log.jsonl │ │ ├── log.txt │ │ ├── log_err_missing.jsonl │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.jsonl │ │ ├── log_err_negative.txt │ │ ├── log_err_str.jsonl │ │ └── log_err_str.txt │ ├── testing/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ ├── main.go │ │ ├── main_test.go │ │ ├── report/ │ │ │ ├── parser.go │ │ │ ├── parser_test.go │ │ │ ├── result.go │ │ │ ├── summary.go │ │ │ └── summary_test.go │ │ └── summarize.go │ ├── v1/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ └── main.go │ ├── v2/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ └── main.go │ ├── v3/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ ├── main.go │ │ └── parser.go │ ├── v4/ │ │ ├── log.txt │ │ ├── log_err_missing.txt │ │ ├── log_err_negative.txt │ │ ├── log_err_str.txt │ │ ├── main.go │ │ └── parser.go │ ├── v5/ │ │ ├── Makefile │ │ ├── filepipe.go │ │ ├── main.go │ │ ├── passthrough.go │ │ └── pipe/ │ │ ├── chartreport.go │ │ ├── close.go │ │ ├── filter.go │ │ ├── filters.go │ │ ├── group.go │ │ ├── groupers.go │ │ ├── jsonlog.go │ │ ├── jsonreport.go │ │ ├── logcount.go │ │ ├── pipe.go │ │ ├── pipeline.go │ │ ├── record.go │ │ ├── recordshare.go │ │ ├── textlog.go │ │ └── textreport.go │ └── v6/ │ ├── logly/ │ │ ├── parse/ │ │ │ ├── count.go │ │ │ ├── json.go │ │ │ ├── parser.go │ │ │ └── text.go │ │ ├── record/ │ │ │ ├── json.go │ │ │ ├── record.go │ │ │ ├── sum.go │ │ │ ├── text.go │ │ │ └── validate.go │ │ └── report/ │ │ ├── json.go │ │ └── text.go │ └── main.go ├── magic/ │ └── detect.go ├── magicpanic/ │ └── detect.go ├── main.go ├── translation/ │ ├── README.md │ ├── chinese/ │ │ ├── 01-安装与介绍/ │ │ │ ├── README.md │ │ │ ├── osx-安装指南.md │ │ │ ├── ubuntu-安装指南.md │ │ │ ├── windows-安装指南.md │ │ │ └── 学习路线.md │ │ ├── 02-编写第一个程序/ │ │ │ ├── README.md │ │ │ ├── main.go │ │ │ ├── 带注释的 GO 程序.md │ │ │ ├── 练习/ │ │ │ │ ├── 01-print-names/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ └── README.md │ │ │ └── 问题/ │ │ │ ├── 01-gopath/ │ │ │ │ └── README.md │ │ │ ├── 02-code-your-first-program/ │ │ │ │ └── README.md │ │ │ └── 03-run-your-first-program/ │ │ │ └── README.md │ │ ├── 03-包和作用域/ │ │ │ ├── 01-packages/ │ │ │ │ ├── bye.go │ │ │ │ ├── hey.go │ │ │ │ └── main.go │ │ │ ├── 02-scopes/ │ │ │ │ ├── 01-scopes/ │ │ │ │ │ └── main.go │ │ │ │ ├── 02-block-scope/ │ │ │ │ │ └── main.go │ │ │ │ ├── 03-nested-scope/ │ │ │ │ │ └── main.go │ │ │ │ └── 04-package-scope/ │ │ │ │ ├── bye.go │ │ │ │ ├── hey.go │ │ │ │ └── main.go │ │ │ ├── 03-importing/ │ │ │ │ ├── 01-file-scope/ │ │ │ │ │ ├── bye.go │ │ │ │ │ └── main.go │ │ │ │ └── 02-renaming/ │ │ │ │ └── main.go │ │ │ ├── 练习/ │ │ │ │ ├── 01-packages/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ ├── bye.go │ │ │ │ │ ├── greet.go │ │ │ │ │ └── main.go │ │ │ │ ├── 02-scopes/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── printer.go │ │ │ │ ├── 03-importing/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ └── README.md │ │ │ └── 问题/ │ │ │ ├── 01-packages-A/ │ │ │ │ └── README.md │ │ │ ├── 02-packages-B/ │ │ │ │ └── README.md │ │ │ └── 03-scopes/ │ │ │ └── README.md │ │ ├── 04-语句-表达式-注释/ │ │ │ ├── 01-statements/ │ │ │ │ ├── 01-execution-flow/ │ │ │ │ │ └── main.go │ │ │ │ └── 02-semicolons/ │ │ │ │ └── main.go │ │ │ ├── 02-expressions/ │ │ │ │ ├── 01-operator/ │ │ │ │ │ └── main.go │ │ │ │ └── 02-call-expression/ │ │ │ │ └── main.go │ │ │ ├── 03-comments/ │ │ │ │ └── main.go │ │ │ ├── 练习/ │ │ │ │ ├── 01-shy-semicolons/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ ├── 02-naked-expression/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ ├── 03-operators-combine/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ ├── 04-print-go-version/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ ├── 05-comment-out/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ ├── 06-use-godoc/ │ │ │ │ │ ├── exercise.md │ │ │ │ │ └── solution/ │ │ │ │ │ └── solution.md │ │ │ │ └── README.md │ │ │ └── 问题/ │ │ │ ├── 01-statements/ │ │ │ │ └── README.md │ │ │ ├── 02-expressions/ │ │ │ │ └── README.md │ │ │ └── 03-comments/ │ │ │ └── README.md │ │ ├── 05-编写你的第一个库程序包/ │ │ │ ├── printer/ │ │ │ │ ├── cmd/ │ │ │ │ │ └── main.go │ │ │ │ └── printer.go │ │ │ ├── 练习/ │ │ │ │ ├── README.md │ │ │ │ └── solution/ │ │ │ │ └── golang/ │ │ │ │ ├── cmd/ │ │ │ │ │ └── main.go │ │ │ │ └── go.go │ │ │ └── 问题/ │ │ │ └── README.md │ │ ├── 06-变量/ │ │ │ ├── 01-基础数据类型/ │ │ │ │ ├── main.go │ │ │ │ ├── 练习/ │ │ │ │ │ ├── 01-print-the-literals/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 02-print-hexes/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── README.md │ │ │ │ └── 问题/ │ │ │ │ └── README.md │ │ │ ├── 02-声明/ │ │ │ │ ├── 01-声明语法/ │ │ │ │ │ ├── 01-语法/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 02-命名规则/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── 03-声明顺序/ │ │ │ │ │ └── main.go │ │ │ │ ├── 02-声明示例/ │ │ │ │ │ ├── 01-int/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 02-float64/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 03-bool/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── 04-string/ │ │ │ │ │ └── main.go │ │ │ │ ├── 03-零值/ │ │ │ │ │ └── main.go │ │ │ │ ├── 04-未使用的变量和空白标识符/ │ │ │ │ │ ├── 01-未使用的变量/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── 02-空白标识符/ │ │ │ │ │ └── main.go │ │ │ │ ├── 05-多重声明/ │ │ │ │ │ ├── 01-多重声明/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── 02-平行声明/ │ │ │ │ │ └── main.go │ │ │ │ ├── 06-例子/ │ │ │ │ │ └── main.go │ │ │ │ ├── 练习/ │ │ │ │ │ ├── 01-int/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 02-bool/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 03-float64/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 04-string/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 05-undeclarables/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 06-with-bits/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 07-multiple/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 08-multiple-2/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 09-unused/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 10-package-variable/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 11-wrong-doer/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── README.md │ │ │ │ └── 问题/ │ │ │ │ ├── 01-what/ │ │ │ │ │ └── README.md │ │ │ │ ├── 02-declaration/ │ │ │ │ │ └── README.md │ │ │ │ ├── 03-unused-variables/ │ │ │ │ │ └── README.md │ │ │ │ └── 04-zero-values/ │ │ │ │ └── README.md │ │ │ ├── 03-简短声明/ │ │ │ │ ├── 01-初始化以及简短声明/ │ │ │ │ │ ├── 01-初始化/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 02-简短声明/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── 03-编码示例/ │ │ │ │ │ └── main.go │ │ │ │ ├── 02-包作用域/ │ │ │ │ │ └── main.go │ │ │ │ ├── 03-多重简短声明/ │ │ │ │ │ ├── 01-声明/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 02-编码示例/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── 03-重声明/ │ │ │ │ │ ├── 01/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── 02-编码示例/ │ │ │ │ │ └── main.go │ │ │ │ ├── 04-简短-vs-正常/ │ │ │ │ │ ├── 01-声明/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── 02-简短声明/ │ │ │ │ │ └── main.go │ │ │ │ ├── 练习/ │ │ │ │ │ ├── 01-short-declare/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 02-multiple-short-declare/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 03-multiple-short-declare-2/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 04-short-with-expression/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 05-short-discard/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 06-redeclare/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── README.md │ │ │ │ └── 问题/ │ │ │ │ └── README.md │ │ │ ├── 04-赋值/ │ │ │ │ ├── 01-概述/ │ │ │ │ │ └── main.go │ │ │ │ ├── 01-赋值/ │ │ │ │ │ ├── 01-赋值/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 02-强类型/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── 03-例子/ │ │ │ │ │ └── main.go │ │ │ │ ├── 05-多重赋值/ │ │ │ │ │ └── main.go │ │ │ │ ├── 06-交换/ │ │ │ │ │ └── main.go │ │ │ │ ├── 07-路径/ │ │ │ │ │ └── main.go │ │ │ │ ├── 08-路径丢弃/ │ │ │ │ │ └── main.go │ │ │ │ ├── 09-路径简短声明/ │ │ │ │ │ └── main.go │ │ │ │ ├── 练习/ │ │ │ │ │ ├── 01-make-it-blue/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 02-vars-to-vars/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 03-assign-with-expressions/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 04-find-the-rectangle-perimeter/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 05-multi-assign/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 06-multi-assign-2/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 07-multi-short-func/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 08-swapper/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 09-swapper-2/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 10-discard-the-file/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── README.md │ │ │ │ └── 问题/ │ │ │ │ └── README.md │ │ │ ├── 05-类型转换/ │ │ │ │ ├── 01-破坏性的/ │ │ │ │ │ └── main.go │ │ │ │ ├── 02-正确的/ │ │ │ │ │ └── main.go │ │ │ │ ├── 03-数型转换/ │ │ │ │ │ └── main.go │ │ │ │ ├── 练习/ │ │ │ │ │ ├── 01-convert-and-fix/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 02-convert-and-fix-2/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 03-convert-and-fix-3/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 04-convert-and-fix-4/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── 05-convert-and-fix-5/ │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── solution/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── README.md │ │ │ │ └── 问题/ │ │ │ │ └── questions.md │ │ │ └── 06-问候员项目/ │ │ │ ├── 01-演示/ │ │ │ │ └── main.go │ │ │ ├── 02-版本1/ │ │ │ │ └── main.go │ │ │ ├── 03-版本2/ │ │ │ │ └── main.go │ │ │ ├── 练习/ │ │ │ │ ├── 01-count-arguments/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ ├── 02-print-the-path/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ ├── 03-print-your-name/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ ├── 04-greet-more-people/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ ├── 05-greet-5-people/ │ │ │ │ │ ├── main.go │ │ │ │ │ └── solution/ │ │ │ │ │ └── main.go │ │ │ │ ├── README.md │ │ │ │ └── solution-to-the-lecture-exercise/ │ │ │ │ └── main.go │ │ │ └── 问题/ │ │ │ └── questions.md │ │ └── 07-打印/ │ │ ├── 01-介绍/ │ │ │ ├── 01-println-vs-printf/ │ │ │ │ └── main.go │ │ │ └── 02/ │ │ │ └── main.go │ │ ├── 02-转义序列/ │ │ │ └── main.go │ │ ├── 03-打印类型/ │ │ │ └── main.go │ │ ├── 04-编程/ │ │ │ └── main.go │ │ ├── 练习/ │ │ │ ├── 01-print-your-age/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 02-print-your-name-and-lastname/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 03-false-claims/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 04-print-the-temperature/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 05-double-quotes/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 06-print-the-type/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 07-print-the-type-2/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 08-print-the-type-3/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 09-print-the-type-4/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ ├── 10-print-your-fullname/ │ │ │ │ ├── main.go │ │ │ │ └── solution/ │ │ │ │ └── main.go │ │ │ └── README.md │ │ └── 问题/ │ │ └── questions.md │ └── spanish/ │ ├── 01-empecemos/ │ │ ├── README.md │ │ ├── instalacion-osx.md │ │ ├── instalacion-ubuntu.md │ │ └── instalacion-windows.md │ ├── 02-tu-primer-programa/ │ │ ├── README.md │ │ ├── anotaciones-ejemplo-programa-go.md │ │ ├── ejercicios/ │ │ │ ├── 01-imprimiendo-nombres/ │ │ │ │ ├── main.go │ │ │ │ └── solucion/ │ │ │ │ └── main.go │ │ │ ├── 02-imprimiendo-gopath/ │ │ │ │ ├── ejercicio.md │ │ │ │ └── solucion/ │ │ │ │ └── solucion.md │ │ │ └── README.md │ │ └── main.go │ ├── 03-paquetes-y-funciones/ │ │ ├── 01-paquetes/ │ │ │ ├── bye.go │ │ │ ├── hey.go │ │ │ └── main.go │ │ ├── 02-funciones/ │ │ │ ├── 01-funciones/ │ │ │ │ └── main.go │ │ │ ├── 02-bloque-de-funcion/ │ │ │ │ └── main.go │ │ │ ├── 03-funciones-anidadas/ │ │ │ │ └── main.go │ │ │ └── 04-funcion-del-paquete/ │ │ │ ├── bye.go │ │ │ ├── hey.go │ │ │ └── main.go │ │ ├── 03-importando/ │ │ │ ├── 01-funcion-del-archivo/ │ │ │ │ ├── bye.go │ │ │ │ └── main.go │ │ │ └── 02-renombrando/ │ │ │ └── main.go │ │ ├── ejercicios/ │ │ │ ├── 01-paquetes/ │ │ │ │ ├── main.go │ │ │ │ └── solucion/ │ │ │ │ ├── bye.go │ │ │ │ ├── greet.go │ │ │ │ └── main.go │ │ │ ├── 02-scopes/ │ │ │ │ ├── main.go │ │ │ │ └── solucion/ │ │ │ │ ├── main.go │ │ │ │ └── printer.go │ │ │ ├── 03-importando/ │ │ │ │ ├── main.go │ │ │ │ └── solucion/ │ │ │ │ └── main.go │ │ │ └── README.md │ │ └── preguntas/ │ │ ├── 01-paquetes-A/ │ │ │ └── README.md │ │ ├── 02-paquete-B/ │ │ │ └── README.md │ │ └── 03-funciones/ │ │ └── README.md │ └── README.md └── x-tba/ ├── README.md ├── foundations/ │ ├── 01-print-args/ │ │ ├── 01-printf/ │ │ │ └── main.go │ │ └── main.go │ ├── 02-variables/ │ │ ├── 01-basics/ │ │ │ └── main.go │ │ ├── 02-short-discard/ │ │ │ └── main.go │ │ ├── 03-conversion/ │ │ │ └── main.go │ │ └── types/ │ │ └── main.go │ ├── 03-if-switch-loop/ │ │ ├── 01-for-crunch-the-primes/ │ │ │ └── main.go │ │ ├── 02-switch-months/ │ │ │ └── main.go │ │ ├── 03-math-table-if-switch-loop/ │ │ │ └── main.go │ │ ├── 04-lucky-number-if-for-switch/ │ │ │ └── main.go │ │ └── 05-path-searcher-for-range/ │ │ └── main.go │ ├── area-of-a-circle/ │ │ └── main.go │ ├── calc/ │ │ ├── 01-shortdecl-int-conv/ │ │ │ └── main.go │ │ ├── 02-if/ │ │ │ └── main.go │ │ ├── 03-floats-conv/ │ │ │ └── main.go │ │ ├── 04-error-handling/ │ │ │ └── main.go │ │ ├── 05-switch/ │ │ │ └── main.go │ │ ├── 06-switch/ │ │ │ └── main.go │ │ ├── 07/ │ │ │ └── main.go │ │ ├── 08-funcs/ │ │ │ └── main.go │ │ ├── 09-packages/ │ │ │ ├── calc/ │ │ │ │ └── calc.go │ │ │ └── main.go │ │ └── calc-scanner/ │ │ ├── calculations.txt │ │ └── main.go │ ├── cels-to-fahr/ │ │ └── main.go │ ├── counter/ │ │ └── main.go │ ├── feet-to-meters/ │ │ └── main.go │ ├── lookup/ │ │ └── main.go │ └── volume-of-a-sphere/ │ └── main.go ├── project-png-parser/ │ └── png-parser-project/ │ ├── 1-png-anatomy-format.md │ ├── 2-png-anatomy-example.md │ └── main.go ├── slicing-allocs-gotcha/ │ ├── main.go │ └── nums/ │ └── main.go ├── swapi-api-client/ │ ├── fetch/ │ │ └── main.go │ ├── film.go │ ├── main.go │ ├── request.go │ ├── starship.go │ └── swapi.go ├── tictactoe/ │ ├── 00-print/ │ │ └── main.go │ ├── 01-vars/ │ │ └── main.go │ ├── 02-short-decl/ │ │ └── main.go │ ├── 03-consts/ │ │ └── main.go │ ├── 04-funcs/ │ │ └── main.go │ ├── 05-testing/ │ │ ├── board_test.go │ │ └── main.go │ ├── 06-if-switch/ │ │ ├── board_test.go │ │ └── main.go │ ├── 07-loop/ │ │ ├── board.go │ │ ├── board_test.go │ │ ├── main.go │ │ └── skin.go │ ├── 08-multi-loop/ │ │ ├── board.go │ │ ├── board_test.go │ │ ├── main.go │ │ └── skin.go │ ├── 09-slices/ │ │ ├── board.go │ │ ├── board_test.go │ │ ├── init.go │ │ ├── main.go │ │ ├── play.go │ │ └── skin.go │ ├── 10-arrays/ │ │ ├── board.go │ │ ├── board_test.go │ │ ├── init.go │ │ ├── main.go │ │ ├── play.go │ │ └── skin.go │ ├── 11-randomization/ │ │ ├── board.go │ │ ├── board_test.go │ │ ├── init.go │ │ ├── main.go │ │ ├── play.go │ │ └── skin.go │ ├── 12-infinite-loop/ │ │ ├── board.go │ │ ├── board_test.go │ │ ├── init.go │ │ ├── main.go │ │ ├── play.go │ │ └── skin.go │ ├── 13-detect-winning/ │ │ ├── board.go │ │ ├── board_test.go │ │ ├── ending.go │ │ ├── init.go │ │ ├── main.go │ │ ├── play.go │ │ └── skin.go │ ├── 14-more-tests/ │ │ ├── board.go │ │ ├── board_test.go │ │ ├── ending.go │ │ ├── ending_test.go │ │ ├── init.go │ │ ├── main.go │ │ ├── play.go │ │ ├── play_test.go │ │ └── skin.go │ ├── 15-os-args/ │ │ ├── board.go │ │ ├── board_test.go │ │ ├── ending.go │ │ ├── ending_test.go │ │ ├── init.go │ │ ├── main.go │ │ ├── play.go │ │ ├── play_test.go │ │ ├── skin.go │ │ └── turn.go │ └── 16-types/ │ ├── board.go │ ├── board_test.go │ ├── ending.go │ ├── ending_test.go │ ├── init.go │ ├── main.go │ ├── play.go │ ├── play_test.go │ ├── skin.go │ └── turn.go ├── tictactoe-experiments/ │ ├── 00-without-bufio/ │ │ └── main.go │ ├── 01-without-funcs/ │ │ └── main.go │ ├── 02-with-funcs/ │ │ └── main.go │ ├── 03-with-structs/ │ │ └── main.go │ ├── 04-with-methods/ │ │ └── main.go │ ├── 05-with-pointers/ │ │ └── main.go │ ├── 06-refactor/ │ │ ├── game.go │ │ ├── logger.go │ │ ├── main.go │ │ ├── resources.md │ │ └── skins.go │ └── README.md └── wizards-structs/ ├── marshal/ │ └── main.go ├── server/ │ ├── list.tmpl.html │ ├── main.go │ ├── store.go │ └── templates.go └── unmarshal/ └── main.go