README ¶ layout: default title: Golang for Beginners nav_order: 2 has_children: true has_toc: true permalink: Golang for Beginners - slides Getting Start with Golang - slides Hello World - slides Number System Hands On Lab - slides Deep Drive Into Variables,Constants and Scope - slides Decision Making in Golang - slides Types - slice, map, new, make, struct - slides funcs, func expressions, closure, returning funcs, recursion, the stack slides Expand ▾ Collapse ▴ Directories ¶ Show internal Expand all Path Synopsis workshop 01_getting-started/01_helloWorld command 01_getting-started/02_numeral-systems/01_decimal command 01_getting-started/02_numeral-systems/02_binary command 01_getting-started/02_numeral-systems/03_hexadecimal command 01_getting-started/02_numeral-systems/04_loop command 01_getting-started/03_UTF-8 command 02_package/icomefromalaska 02_package/main command 02_package/stringutil Package stringutil contains utility functions for working with strings. Package stringutil contains utility functions for working with strings. 03_variables/01_shorthand/01 command 03_variables/01_shorthand/02 command 03_variables/02_var_zero-value command 03_variables/03_less-emphasis/01_declare-variable command 03_variables/03_less-emphasis/02_declare-many-at-once command 03_variables/03_less-emphasis/03_init-many-at-once command 03_variables/03_less-emphasis/04_infer-type command 03_variables/03_less-emphasis/05_infer-mixed-up-types command 03_variables/03_less-emphasis/06_init-shorthand command 03_variables/03_less-emphasis/07_all-together command 03_variables/03_less-emphasis/08_exercise_your-name/01_oneSolution command 03_variables/03_less-emphasis/08_exercise_your-name/02_anotherSolution command 03_variables/03_less-emphasis/08_exercise_your-name/03_anotherSolution command 03_variables/03_less-emphasis/08_exercise_your-name/04_anotherSolution command 04_scope/01_package-scope/01 command 04_scope/01_package-scope/02_visibility/main command 04_scope/01_package-scope/02_visibility/vis 04_scope/02_block-scope/01_this-does-not-compile command 04_scope/02_block-scope/02_closure/01 command 04_scope/02_block-scope/02_closure/02 command 04_scope/02_block-scope/02_closure/03 command 04_scope/02_block-scope/02_closure/04 command 04_scope/03_order-matters command 04_scope/04_variable-shadowing command 04_scope/05_same-package command 05_blank-identifier/01_invalid-code command 05_blank-identifier/02_http-get_example/01_with-error-checking command 05_blank-identifier/02_http-get_example/02_no-error-checking command 06_constants/01_constant command 06_constants/02_multiple-initialization command 06_constants/03_iota command 06_constants/04_iota command 06_constants/05_iota command 06_constants/06_iota command 06_constants/07_iota command 07_memory-address/01_showing-address command 07_memory-address/02_using-address command 08_pointers/01_referencing command 08_pointers/02_dereferencing command 08_pointers/03_using-pointers command 08_pointers/04_using-pointers/01_no-pointer/01 command 08_pointers/04_using-pointers/01_no-pointer/02_see-the-addresses command 08_pointers/04_using-pointers/02_pointer/01 command 08_pointers/04_using-pointers/02_pointer/02_see-the-addresses command 09_remainder command 10_for-loop/01_init-condition-post command 10_for-loop/02_nested command 10_for-loop/03_for-condition-while-ish command 10_for-loop/04_for_no-condition command 10_for-loop/05_for_break command 10_for-loop/06_for_continue command 10_for-loop/07_rune-loop_UTF8/01 command 10_for-loop/07_rune-loop_UTF8/02 command 11_switch-statements/01_switch command 11_switch-statements/02_fallthrough command 11_switch-statements/03_multiple-evals command 11_switch-statements/04_no-expression command 11_switch-statements/05_on-type command 12_if_else-if_else/01_eval-true command 12_if_else-if_else/02_not-exclamation command 12_if_else-if_else/03_init-statement command 12_if_else-if_else/04_init-statement_error_invalid-code command 12_if_else-if_else/05_if-else command 12_if_else-if_else/06_if-elseif-else command 12_if_else-if_else/07_if-elseif-elseif-else command 12_if_else-if_else/08_divisibleByThree command 13_exercise-solutions/01_hello-world command 13_exercise-solutions/02_hello-NAME command 13_exercise-solutions/03_hello-user-input command 13_exercise-solutions/04_user-enters-numbers command 13_exercise-solutions/05_even-numbers command 13_exercise-solutions/06_fizzBuzz command 13_exercise-solutions/07_threeFive command 13_exercise-solutions/08_just-fyi/03_utf command 14_functions/01_main command 14_functions/02_param-arg command 14_functions/03_two-params/01 command 14_functions/03_two-params/02 command 14_functions/04_return command 14_functions/05_return-naming command 14_functions/06_return-multiple command 14_functions/07_variadic-params command 14_functions/08_variadic-args command 14_functions/09_slice-param-arg command 14_functions/10_func-expression/01_before-func-expression command 14_functions/10_func-expression/02_func-expression command 14_functions/10_func-expression/03_func-expression_shows-type command 14_functions/10_func-expression/04_another-way_func-expression command 14_functions/10_func-expression/05_another-way_func-expression_shows-type command 14_functions/11_closure/01 command 14_functions/11_closure/02 command 14_functions/11_closure/03 command 14_functions/11_closure/04 command 14_functions/11_closure/05 command 14_functions/12_callbacks/01_print-nums command 14_functions/12_callbacks/02_filter-nums command 14_functions/13_recursion command 14_functions/14_defer/01_no-defer command 14_functions/14_defer/02_with-defer command 14_functions/15_passing-by-value/01_int command 14_functions/15_passing-by-value/02_int-pointer command 14_functions/15_passing-by-value/03_string command 14_functions/15_passing-by-value/04_string-pointer command 14_functions/15_passing-by-value/05_REFERENCE-TYPE command 14_functions/15_passing-by-value/06_REFERENCE-TYPE command 14_functions/15_passing-by-value/07_struct-pointer command 14_functions/16_anon_self-executing command 15_bool-expressions/01_true-false command 15_bool-expressions/02_not command 15_bool-expressions/03_or command 15_bool-expressions/04_and command 16_exercise-solutions/01_half/01 command 16_exercise-solutions/01_half/02 command 16_exercise-solutions/02_func-expression command 16_exercise-solutions/03_variadic-greatest command 16_exercise-solutions/04_bool-expression command 16_exercise-solutions/05_params-and-args command 17_array/01 command 17_array/02 command 17_array/03 command 17_array/04 command 17_array/05 command 18_slice/01_int-slice command 18_slice/02_int-slice command 18_slice/03_int-slice command 18_slice/04_string-slice command 18_slice/05_slicing-a-slice/01 command 18_slice/05_slicing-a-slice/02 command 18_slice/06_make command 18_slice/07_append-invalid command 18_slice/08_append command 18_slice/09_append-beyond-capacity command 18_slice/10_append_slice-to-slice/01_slice-of-ints command 18_slice/10_append_slice-to-slice/02_slice-of-strings command 18_slice/11_delete command 18_slice/12_multi-dimensional/01_shorthand-slice command 18_slice/12_multi-dimensional/02_var-slice command 18_slice/12_multi-dimensional/03_make-slice command 18_slice/12_multi-dimensional/04_comparing_shorthand_var_make/01_shorthand-slice command 18_slice/12_multi-dimensional/04_comparing_shorthand_var_make/02_var-slice command 18_slice/12_multi-dimensional/04_comparing_shorthand_var_make/03_make-slice command 18_slice/12_multi-dimensional/05_slice-of-slice-of-string command 18_slice/12_multi-dimensional/06_slice-of-slice-of-int command 18_slice/13_int-slice-plus-plus command 19_map/01_var_nil-map command 19_map/02_var_make command 19_map/03_shorthand_make command 19_map/04_shorthand_composite-literal command 19_map/05_shorthand_composite-literal command 19_map/06_adding-entry command 19_map/07_len command 19_map/08_updating-entry command 19_map/09_deleting-entry command 19_map/10_comma-ok-idiom_val-exists command 19_map/11_deleting-entry_no-error command 19_map/12_comma-ok-idiom_val-not-exists command 19_map/13_loop-range command 19_map/14_hash-table/01_letter-buckets/01_runes-are-numbers command 19_map/14_hash-table/01_letter-buckets/02_strings-to-rune-conversion command 19_map/14_hash-table/01_letter-buckets/03_string-index-access command 19_map/14_hash-table/01_letter-buckets/04_remainder-bucket-selection command 19_map/14_hash-table/01_letter-buckets/05_hash-function command 19_map/14_hash-table/01_letter-buckets/06_get command 19_map/14_hash-table/01_letter-buckets/07_scanner command 19_map/14_hash-table/01_letter-buckets/08_moby-dicks-words command 19_map/14_hash-table/01_letter-buckets/09_int-slice-plus-plus command 19_map/14_hash-table/01_letter-buckets/10_hash-letter-buckets command 19_map/14_hash-table/01_letter-buckets/11_hash-remainder-buckets command 19_map/14_hash-table/02_even-dstribution-hash command 19_map/14_hash-table/03_words-in-buckets/01_slice-bucket command 19_map/14_hash-table/03_words-in-buckets/02_map-bucket command 19_map/14_hash-table/04_english-alphabet/01 command 19_map/14_hash-table/04_english-alphabet/02 command 20_struct/01_user-defined-types/01_alias-type_not-idiomatic command 20_struct/01_user-defined-types/02_static-typing command 20_struct/02_struct_fields_values_initialization command 20_struct/03_methods command 20_struct/04_embedded-types command 20_struct/05_promotion/01_overriding-fields command 20_struct/05_promotion/02_overriding-methods command 20_struct/06_struct-pointer command 20_struct/07_marshal_unmarshal/01_marshal/01_exported command 20_struct/07_marshal_unmarshal/01_marshal/02_unexported command 20_struct/07_marshal_unmarshal/01_marshal/03_tags command 20_struct/07_marshal_unmarshal/02_unmarshal/01 command 20_struct/07_marshal_unmarshal/02_unmarshal/02_tags command 20_struct/08_encode_decode/01_encode command 20_struct/08_encode_decode/02_decode command 21_interfaces/01_interface/01_no-interface command 21_interfaces/01_interface/02_interface command 21_interfaces/01_interface/03_interface command 21_interfaces/01_interface/04_interface command 21_interfaces/01_interface/05_io-copy/01_no-error-checking command 21_interfaces/01_interface/05_io-copy/02_error-checking command 21_interfaces/02_package-sort/01_sort-names command 21_interfaces/02_package-sort/02_sort-names_type-StringSlice command 21_interfaces/02_package-sort/03_sort-Strings command 21_interfaces/02_package-sort/04_sort-names_type-StringSlice_reverse command 21_interfaces/02_package-sort/05_sort-int_type-IntSlice command 21_interfaces/02_package-sort/06_sort-int_type-IntSlice_reverse command 21_interfaces/02_package-sort/07_sort-Ints command 21_interfaces/02_package-sort/08_standard-library-example command 21_interfaces/03_empty-interface/01_no-interface command 21_interfaces/03_empty-interface/02_empty-interface command 21_interfaces/03_empty-interface/03_param-accepts-any-type command 21_interfaces/03_empty-interface/04_slice-of-any-type command 21_interfaces/04_method-sets/01_value-receiver_value-type command 21_interfaces/04_method-sets/02_value-receiver_pointer-type command 21_interfaces/04_method-sets/03_pointer-receiver_pointer-type command 21_interfaces/04_method-sets/04_pointer-receiver_value-type command 21_interfaces/05_conversion-vs-assertion/01_conversion/01_int-to-float command 21_interfaces/05_conversion-vs-assertion/01_conversion/02_float-to-int command 21_interfaces/05_conversion-vs-assertion/01_conversion/03_rune-to-string command 21_interfaces/05_conversion-vs-assertion/01_conversion/04_rune-to-slice-of-bytes-to-string command 21_interfaces/05_conversion-vs-assertion/01_conversion/05_string-to-slice-of-bytes command 21_interfaces/05_conversion-vs-assertion/01_conversion/06_strconv/01_Atoi command 21_interfaces/05_conversion-vs-assertion/01_conversion/06_strconv/02_Itoa command 21_interfaces/05_conversion-vs-assertion/01_conversion/06_strconv/03_ParseInt command 21_interfaces/05_conversion-vs-assertion/02_assertion/01_non-interface-error_invalid-code command 21_interfaces/05_conversion-vs-assertion/02_assertion/02_interface-string command 21_interfaces/05_conversion-vs-assertion/02_assertion/03_interface-string_not-ok command 21_interfaces/05_conversion-vs-assertion/02_assertion/04_interface-int_print-type command 21_interfaces/05_conversion-vs-assertion/02_assertion/05_interface-int_mistmatched-types-error command 21_interfaces/05_conversion-vs-assertion/02_assertion/06_interface-int-sum command 21_interfaces/05_conversion-vs-assertion/02_assertion/07_casting-reminder command 21_interfaces/05_conversion-vs-assertion/02_assertion/08_interface-cast-error_need-type-assertion command 22_go-routines/01_no-go command 22_go-routines/02_go_concurrency command 22_go-routines/03_wait-group command 22_go-routines/04_time-sleep command 22_go-routines/05_gomaxprocs_parallelism command 22_go-routines/06_race-condition command 22_go-routines/07_mutex command 22_go-routines/08_atomicity command 22_go-routines/09_channels/00_unbuffered-channels-block command 22_go-routines/09_channels/01_range command 22_go-routines/09_channels/02_n-to-1/01_race-condition command 22_go-routines/09_channels/02_n-to-1/02_wait-group command 22_go-routines/09_channels/02_n-to-1/03_semaphore command 22_go-routines/09_channels/02_n-to-1/04_semaphore_wrong-way command 22_go-routines/09_channels/02_n-to-1/05_n-times_to_1 command 22_go-routines/09_channels/03_1-to-n/01_1_to_2-times command 22_go-routines/09_channels/03_1-to-n/02_1_to_n-times command 22_go-routines/09_channels/04_pass-return-channels command 22_go-routines/09_channels/05_channel-direction command 22_go-routines/09_channels/06_refactor command 22_go-routines/09_channels/07_incrementor command 22_go-routines/09_channels/08_closures/01_no-closure-binding command 22_go-routines/09_channels/08_closures/02_closure-binding command 22_go-routines/09_channels/08_closures/03_closure-binding command 22_go-routines/10_deadlock-challenges/01_deadlock-challenge command 22_go-routines/10_deadlock-challenges/02_deadlock-solution command 22_go-routines/10_deadlock-challenges/03_deadlock-challenge command 22_go-routines/10_deadlock-challenges/04_deadlock-challenge command 22_go-routines/10_deadlock-challenges/05_deadlock-solution command 22_go-routines/11_factorial-challenge/01_challenge-description command 22_go-routines/11_factorial-challenge/02_challenge-solution command 22_go-routines/12_channels_pipeline/01_sq-output command 22_go-routines/12_channels_pipeline/02_sq-output command 22_go-routines/12_channels_pipeline/03_challenge-description command 22_go-routines/12_channels_pipeline/04_challenge-solution/01_original-solution command 22_go-routines/12_channels_pipeline/04_challenge-solution/02_another-solution command 22_go-routines/13_channels_fan-out_fan-in/01_boring command 22_go-routines/13_channels_fan-out_fan-in/02_sq-output command 22_go-routines/13_channels_fan-out_fan-in/03_sq-output_variation command 22_go-routines/13_channels_fan-out_fan-in/04_challenge-description command 22_go-routines/13_channels_fan-out_fan-in/05_challenge-solution command 22_go-routines/13_channels_fan-out_fan-in/06_challenge-description command 22_go-routines/13_channels_fan-out_fan-in/07_challenge-solution command 22_go-routines/13_channels_fan-out_fan-in/08_challenge-description command 22_go-routines/13_channels_fan-out_fan-in/09_challenge-solution/01_troubleshooting-step command 22_go-routines/13_channels_fan-out_fan-in/09_challenge-solution/02_solution command 22_go-routines/13_channels_fan-out_fan-in/10_van-sickle_fan-out_fan-in command 22_go-routines/14_incrementor-challenge/01_description command 22_go-routines/14_incrementor-challenge/02_solution command 22_go-routines/15_for-fun/01 command 23_error-handling/01_golint/01_before command 23_error-handling/01_golint/02_after command 23_error-handling/02_err-not-nil/01_fmt-println command 23_error-handling/02_err-not-nil/02_log-println command 23_error-handling/02_err-not-nil/03_log-set-output command 23_error-handling/02_err-not-nil/04_log-fatalln command 23_error-handling/02_err-not-nil/05_panic command 23_error-handling/03_custom-errors/01_errors-new command 23_error-handling/03_custom-errors/02_errors-new_var command 23_error-handling/03_custom-errors/03_fmt-errorf command 23_error-handling/03_custom-errors/04_fmt-errorf_var command 23_error-handling/03_custom-errors/05_custom-type command 24_testing 25_code-walk command 25_code-walk/with-comments command Click to show internal directories. Click to hide internal directories.