jack 3 달 전
부모
커밋
7f592c34e1
100개의 변경된 파일65개의 추가작업 그리고 0개의 파일을 삭제
  1. 0 0
      golang-learn/base/01-env_hello_world/main.go
  2. 0 0
      golang-learn/base/01-env_hello_world/my_golang_program
  3. 0 0
      golang-learn/base/02-package_import/go.mod
  4. 0 0
      golang-learn/base/02-package_import/main.go
  5. 0 0
      golang-learn/base/02-package_import/quote/quote.go
  6. 0 0
      golang-learn/base/03-visibility_rules/go.mod
  7. 0 0
      golang-learn/base/03-visibility_rules/main.go
  8. 0 0
      golang-learn/base/03-visibility_rules/utils/visibility_rules.go
  9. 0 0
      golang-learn/base/04-variables_var/main.go
  10. 0 0
      golang-learn/base/05-short_declaration/go.mod
  11. 0 0
      golang-learn/base/05-short_declaration/short_declaration.go
  12. 0 0
      golang-learn/base/06-constants_iota/constants_iota.go
  13. 0 0
      golang-learn/base/06-constants_iota/go.mod
  14. 0 0
      golang-learn/base/07-basic_data_types/basic_data_types.go
  15. 0 0
      golang-learn/base/07-basic_data_types/go.mod
  16. 0 0
      golang-learn/base/08-string_operations/go.mod
  17. 0 0
      golang-learn/base/08-string_operations/string_operations.go
  18. 0 0
      golang-learn/base/09-string_formatting/go.mod
  19. 0 0
      golang-learn/base/09-string_formatting/string_formatting.go
  20. 0 0
      golang-learn/base/10-arrays/arrays.go
  21. 0 0
      golang-learn/base/10-arrays/go.mod
  22. 0 0
      golang-learn/base/11-slices/go.mod
  23. 0 0
      golang-learn/base/11-slices/slices.go
  24. 0 0
      golang-learn/base/12-slice_internals/go.mod
  25. 0 0
      golang-learn/base/12-slice_internals/slice_internals.go
  26. 0 0
      golang-learn/base/13-maps/go.mod
  27. 0 0
      golang-learn/base/13-maps/maps.go
  28. 0 0
      golang-learn/base/14-structs/go.mod
  29. 0 0
      golang-learn/base/14-structs/structs.go
  30. 0 0
      golang-learn/base/15-pointers/go.mod
  31. 0 0
      golang-learn/base/15-pointers/pointers.go
  32. 0 0
      golang-learn/base/16-basic_functions/basic_functions.go
  33. 0 0
      golang-learn/base/16-basic_functions/go.mod
  34. 0 0
      golang-learn/base/17-variadic_params/go.mod
  35. 0 0
      golang-learn/base/17-variadic_params/variadic_params.go
  36. 0 0
      golang-learn/base/18-defer_statement/defer_statement.go
  37. 0 0
      golang-learn/base/18-defer_statement/go.mod
  38. 0 0
      golang-learn/base/19-init_function/a.go
  39. 0 0
      golang-learn/base/19-init_function/b.go
  40. 0 0
      golang-learn/base/19-init_function/go.mod
  41. 0 0
      golang-learn/base/19-init_function/main.go
  42. 0 0
      golang-learn/base/20-error_handling/error_handling.go
  43. 0 0
      golang-learn/base/20-error_handling/go.mod
  44. 0 0
      golang-learn/base/21-if_statement/go.mod
  45. 0 0
      golang-learn/base/21-if_statement/if_statement.go
  46. 0 0
      golang-learn/base/22-switch_statement/go.mod
  47. 0 0
      golang-learn/base/22-switch_statement/switch_statement.go
  48. 0 0
      golang-learn/base/23-for_loops/for_loops.go
  49. 0 0
      golang-learn/base/23-for_loops/go.mod
  50. 0 0
      golang-learn/base/24-range_loop/go.mod
  51. 0 0
      golang-learn/base/24-range_loop/range_loop.go
  52. 0 0
      golang-learn/base/25-goto_labels/go.mod
  53. 0 0
      golang-learn/base/25-goto_labels/goto_labels.go
  54. 0 0
      golang-learn/base/26-methods/go.mod
  55. 0 0
      golang-learn/base/26-methods/methods.go
  56. 0 0
      golang-learn/base/27-interfaces/go.mod
  57. 0 0
      golang-learn/base/27-interfaces/interfaces.go
  58. 0 0
      golang-learn/base/28-type_assertions/go.mod
  59. 0 0
      golang-learn/base/28-type_assertions/type_assertions.go
  60. 0 0
      golang-learn/base/29-type_switches/go.mod
  61. 0 0
      golang-learn/base/29-type_switches/type_switches.go
  62. 0 0
      golang-learn/base/30-embedding/embedding.go
  63. 0 0
      golang-learn/base/30-embedding/go.mod
  64. 0 0
      golang-learn/base/31-goroutines/go.mod
  65. 0 0
      golang-learn/base/31-goroutines/goroutines.go
  66. 0 0
      golang-learn/base/32-channels_basics/channels_basics.go
  67. 0 0
      golang-learn/base/32-channels_basics/go.mod
  68. 0 0
      golang-learn/base/33-buffered_channels_close/buffered_channels_close.go
  69. 0 0
      golang-learn/base/33-buffered_channels_close/go.mod
  70. 0 0
      golang-learn/base/34-select_statement/go.mod
  71. 0 0
      golang-learn/base/34-select_statement/select_statement.go
  72. 0 0
      golang-learn/base/35-sync_mutex/go.mod
  73. 0 0
      golang-learn/base/35-sync_mutex/sync_mutex.go
  74. 0 0
      golang-learn/base/36-sync_waitgroup/go.mod
  75. 0 0
      golang-learn/base/36-sync_waitgroup/sync_waitgroup.go
  76. 0 0
      golang-learn/base/37-unit_tests/add.go
  77. 0 0
      golang-learn/base/37-unit_tests/add_test.go
  78. 0 0
      golang-learn/base/37-unit_tests/go.mod
  79. 0 0
      golang-learn/base/38-table_driven_tests/-v
  80. 0 0
      golang-learn/base/38-table_driven_tests/add.go
  81. 0 0
      golang-learn/base/38-table_driven_tests/add_test.go
  82. 0 0
      golang-learn/base/38-table_driven_tests/go.mod
  83. 0 0
      golang-learn/base/39-benchmarks/benchmarks.go
  84. 0 0
      golang-learn/base/39-benchmarks/benchmarks_test.go
  85. 0 0
      golang-learn/base/39-benchmarks/go.mod
  86. 0 0
      golang-learn/base/40-go_modules/go.mod
  87. 0 0
      golang-learn/base/40-go_modules/go.sum
  88. 0 0
      golang-learn/base/40-go_modules/main.go
  89. 0 0
      golang-learn/base/41-anonymous_function/anonymous_function.go
  90. 0 0
      golang-learn/base/42-closure/closure.go
  91. 0 0
      golang-learn/base/43-method/method.go
  92. 0 0
      golang-learn/base/44-interface1/main.go
  93. 0 0
      golang-learn/base/45-arrays1/main.go
  94. 0 0
      golang-learn/base/46-multidimensional_array/main.go
  95. 0 0
      golang-learn/base/47-pointersArray/main.go
  96. 0 0
      golang-learn/base/48-range/range.go
  97. 0 0
      golang-learn/base/49-recursive/main.go
  98. 0 0
      golang-learn/base/50-type_conversion/main.go
  99. 0 0
      golang-learn/base/51-interface2/main.go
  100. 65 0
      golang-learn/base/52-error_handling1/main.go

+ 0 - 0
golang-learn/01-env_hello_world/main.go → golang-learn/base/01-env_hello_world/main.go


+ 0 - 0
golang-learn/01-env_hello_world/my_golang_program → golang-learn/base/01-env_hello_world/my_golang_program


+ 0 - 0
golang-learn/02-package_import/go.mod → golang-learn/base/02-package_import/go.mod


+ 0 - 0
golang-learn/02-package_import/main.go → golang-learn/base/02-package_import/main.go


+ 0 - 0
golang-learn/02-package_import/quote/quote.go → golang-learn/base/02-package_import/quote/quote.go


+ 0 - 0
golang-learn/03-visibility_rules/go.mod → golang-learn/base/03-visibility_rules/go.mod


+ 0 - 0
golang-learn/03-visibility_rules/main.go → golang-learn/base/03-visibility_rules/main.go


+ 0 - 0
golang-learn/03-visibility_rules/utils/visibility_rules.go → golang-learn/base/03-visibility_rules/utils/visibility_rules.go


+ 0 - 0
golang-learn/04-variables_var/main.go → golang-learn/base/04-variables_var/main.go


+ 0 - 0
golang-learn/05-short_declaration/go.mod → golang-learn/base/05-short_declaration/go.mod


+ 0 - 0
golang-learn/05-short_declaration/short_declaration.go → golang-learn/base/05-short_declaration/short_declaration.go


+ 0 - 0
golang-learn/06-constants_iota/constants_iota.go → golang-learn/base/06-constants_iota/constants_iota.go


+ 0 - 0
golang-learn/06-constants_iota/go.mod → golang-learn/base/06-constants_iota/go.mod


+ 0 - 0
golang-learn/07-basic_data_types/basic_data_types.go → golang-learn/base/07-basic_data_types/basic_data_types.go


+ 0 - 0
golang-learn/07-basic_data_types/go.mod → golang-learn/base/07-basic_data_types/go.mod


+ 0 - 0
golang-learn/08-string_operations/go.mod → golang-learn/base/08-string_operations/go.mod


+ 0 - 0
golang-learn/08-string_operations/string_operations.go → golang-learn/base/08-string_operations/string_operations.go


+ 0 - 0
golang-learn/09-string_formatting/go.mod → golang-learn/base/09-string_formatting/go.mod


+ 0 - 0
golang-learn/09-string_formatting/string_formatting.go → golang-learn/base/09-string_formatting/string_formatting.go


+ 0 - 0
golang-learn/10-arrays/arrays.go → golang-learn/base/10-arrays/arrays.go


+ 0 - 0
golang-learn/10-arrays/go.mod → golang-learn/base/10-arrays/go.mod


+ 0 - 0
golang-learn/11-slices/go.mod → golang-learn/base/11-slices/go.mod


+ 0 - 0
golang-learn/11-slices/slices.go → golang-learn/base/11-slices/slices.go


+ 0 - 0
golang-learn/12-slice_internals/go.mod → golang-learn/base/12-slice_internals/go.mod


+ 0 - 0
golang-learn/12-slice_internals/slice_internals.go → golang-learn/base/12-slice_internals/slice_internals.go


+ 0 - 0
golang-learn/13-maps/go.mod → golang-learn/base/13-maps/go.mod


+ 0 - 0
golang-learn/13-maps/maps.go → golang-learn/base/13-maps/maps.go


+ 0 - 0
golang-learn/14-structs/go.mod → golang-learn/base/14-structs/go.mod


+ 0 - 0
golang-learn/14-structs/structs.go → golang-learn/base/14-structs/structs.go


+ 0 - 0
golang-learn/15-pointers/go.mod → golang-learn/base/15-pointers/go.mod


+ 0 - 0
golang-learn/15-pointers/pointers.go → golang-learn/base/15-pointers/pointers.go


+ 0 - 0
golang-learn/16-basic_functions/basic_functions.go → golang-learn/base/16-basic_functions/basic_functions.go


+ 0 - 0
golang-learn/16-basic_functions/go.mod → golang-learn/base/16-basic_functions/go.mod


+ 0 - 0
golang-learn/17-variadic_params/go.mod → golang-learn/base/17-variadic_params/go.mod


+ 0 - 0
golang-learn/17-variadic_params/variadic_params.go → golang-learn/base/17-variadic_params/variadic_params.go


+ 0 - 0
golang-learn/18-defer_statement/defer_statement.go → golang-learn/base/18-defer_statement/defer_statement.go


+ 0 - 0
golang-learn/18-defer_statement/go.mod → golang-learn/base/18-defer_statement/go.mod


+ 0 - 0
golang-learn/19-init_function/a.go → golang-learn/base/19-init_function/a.go


+ 0 - 0
golang-learn/19-init_function/b.go → golang-learn/base/19-init_function/b.go


+ 0 - 0
golang-learn/19-init_function/go.mod → golang-learn/base/19-init_function/go.mod


+ 0 - 0
golang-learn/19-init_function/main.go → golang-learn/base/19-init_function/main.go


+ 0 - 0
golang-learn/20-error_handling/error_handling.go → golang-learn/base/20-error_handling/error_handling.go


+ 0 - 0
golang-learn/20-error_handling/go.mod → golang-learn/base/20-error_handling/go.mod


+ 0 - 0
golang-learn/21-if_statement/go.mod → golang-learn/base/21-if_statement/go.mod


+ 0 - 0
golang-learn/21-if_statement/if_statement.go → golang-learn/base/21-if_statement/if_statement.go


+ 0 - 0
golang-learn/22-switch_statement/go.mod → golang-learn/base/22-switch_statement/go.mod


+ 0 - 0
golang-learn/22-switch_statement/switch_statement.go → golang-learn/base/22-switch_statement/switch_statement.go


+ 0 - 0
golang-learn/23-for_loops/for_loops.go → golang-learn/base/23-for_loops/for_loops.go


+ 0 - 0
golang-learn/23-for_loops/go.mod → golang-learn/base/23-for_loops/go.mod


+ 0 - 0
golang-learn/24-range_loop/go.mod → golang-learn/base/24-range_loop/go.mod


+ 0 - 0
golang-learn/24-range_loop/range_loop.go → golang-learn/base/24-range_loop/range_loop.go


+ 0 - 0
golang-learn/25-goto_labels/go.mod → golang-learn/base/25-goto_labels/go.mod


+ 0 - 0
golang-learn/25-goto_labels/goto_labels.go → golang-learn/base/25-goto_labels/goto_labels.go


+ 0 - 0
golang-learn/26-methods/go.mod → golang-learn/base/26-methods/go.mod


+ 0 - 0
golang-learn/26-methods/methods.go → golang-learn/base/26-methods/methods.go


+ 0 - 0
golang-learn/27-interfaces/go.mod → golang-learn/base/27-interfaces/go.mod


+ 0 - 0
golang-learn/27-interfaces/interfaces.go → golang-learn/base/27-interfaces/interfaces.go


+ 0 - 0
golang-learn/28-type_assertions/go.mod → golang-learn/base/28-type_assertions/go.mod


+ 0 - 0
golang-learn/28-type_assertions/type_assertions.go → golang-learn/base/28-type_assertions/type_assertions.go


+ 0 - 0
golang-learn/29-type_switches/go.mod → golang-learn/base/29-type_switches/go.mod


+ 0 - 0
golang-learn/29-type_switches/type_switches.go → golang-learn/base/29-type_switches/type_switches.go


+ 0 - 0
golang-learn/30-embedding/embedding.go → golang-learn/base/30-embedding/embedding.go


+ 0 - 0
golang-learn/30-embedding/go.mod → golang-learn/base/30-embedding/go.mod


+ 0 - 0
golang-learn/31-goroutines/go.mod → golang-learn/base/31-goroutines/go.mod


+ 0 - 0
golang-learn/31-goroutines/goroutines.go → golang-learn/base/31-goroutines/goroutines.go


+ 0 - 0
golang-learn/32-channels_basics/channels_basics.go → golang-learn/base/32-channels_basics/channels_basics.go


+ 0 - 0
golang-learn/32-channels_basics/go.mod → golang-learn/base/32-channels_basics/go.mod


+ 0 - 0
golang-learn/33-buffered_channels_close/buffered_channels_close.go → golang-learn/base/33-buffered_channels_close/buffered_channels_close.go


+ 0 - 0
golang-learn/33-buffered_channels_close/go.mod → golang-learn/base/33-buffered_channels_close/go.mod


+ 0 - 0
golang-learn/34-select_statement/go.mod → golang-learn/base/34-select_statement/go.mod


+ 0 - 0
golang-learn/34-select_statement/select_statement.go → golang-learn/base/34-select_statement/select_statement.go


+ 0 - 0
golang-learn/35-sync_mutex/go.mod → golang-learn/base/35-sync_mutex/go.mod


+ 0 - 0
golang-learn/35-sync_mutex/sync_mutex.go → golang-learn/base/35-sync_mutex/sync_mutex.go


+ 0 - 0
golang-learn/36-sync_waitgroup/go.mod → golang-learn/base/36-sync_waitgroup/go.mod


+ 0 - 0
golang-learn/36-sync_waitgroup/sync_waitgroup.go → golang-learn/base/36-sync_waitgroup/sync_waitgroup.go


+ 0 - 0
golang-learn/37-unit_tests/add.go → golang-learn/base/37-unit_tests/add.go


+ 0 - 0
golang-learn/37-unit_tests/add_test.go → golang-learn/base/37-unit_tests/add_test.go


+ 0 - 0
golang-learn/37-unit_tests/go.mod → golang-learn/base/37-unit_tests/go.mod


+ 0 - 0
golang-learn/38-table_driven_tests/-v → golang-learn/base/38-table_driven_tests/-v


+ 0 - 0
golang-learn/38-table_driven_tests/add.go → golang-learn/base/38-table_driven_tests/add.go


+ 0 - 0
golang-learn/38-table_driven_tests/add_test.go → golang-learn/base/38-table_driven_tests/add_test.go


+ 0 - 0
golang-learn/38-table_driven_tests/go.mod → golang-learn/base/38-table_driven_tests/go.mod


+ 0 - 0
golang-learn/39-benchmarks/benchmarks.go → golang-learn/base/39-benchmarks/benchmarks.go


+ 0 - 0
golang-learn/39-benchmarks/benchmarks_test.go → golang-learn/base/39-benchmarks/benchmarks_test.go


+ 0 - 0
golang-learn/39-benchmarks/go.mod → golang-learn/base/39-benchmarks/go.mod


+ 0 - 0
golang-learn/40-go_modules/go.mod → golang-learn/base/40-go_modules/go.mod


+ 0 - 0
golang-learn/40-go_modules/go.sum → golang-learn/base/40-go_modules/go.sum


+ 0 - 0
golang-learn/40-go_modules/main.go → golang-learn/base/40-go_modules/main.go


+ 0 - 0
golang-learn/41-anonymous_function/anonymous_function.go → golang-learn/base/41-anonymous_function/anonymous_function.go


+ 0 - 0
golang-learn/42-closure/closure.go → golang-learn/base/42-closure/closure.go


+ 0 - 0
golang-learn/43-method/method.go → golang-learn/base/43-method/method.go


+ 0 - 0
golang-learn/44-interface1/main.go → golang-learn/base/44-interface1/main.go


+ 0 - 0
golang-learn/45-arrays1/main.go → golang-learn/base/45-arrays1/main.go


+ 0 - 0
golang-learn/46-multidimensional_array/main.go → golang-learn/base/46-multidimensional_array/main.go


+ 0 - 0
golang-learn/47-pointersArray/main.go → golang-learn/base/47-pointersArray/main.go


+ 0 - 0
golang-learn/48-range/range.go → golang-learn/base/48-range/range.go


+ 0 - 0
golang-learn/49-recursive/main.go → golang-learn/base/49-recursive/main.go


+ 0 - 0
golang-learn/50-type_conversion/main.go → golang-learn/base/50-type_conversion/main.go


+ 0 - 0
golang-learn/51-interface2/main.go → golang-learn/base/51-interface2/main.go


+ 65 - 0
golang-learn/base/52-error_handling1/main.go

@@ -0,0 +1,65 @@
+package main
+
+import (
+	"errors"
+	"fmt"
+	"math"
+)
+
+type DivideError struct {
+	Dividend int
+	Divisor  int
+}
+
+func MySqrt(f float64) (float64, error) {
+	if f < 0 {
+		return 0, errors.New("math: square root of negative number")
+	}
+	return math.Sqrt(f), nil
+}
+
+func divide(a, b int) (int, error) {
+	if b == 0 {
+		return 0, errors.New("division by zero")
+	}
+	return a / b, nil
+}
+
+func (e *DivideError) Error() string {
+	return fmt.Sprintf("cannot divide %d by %d", e.Dividend, e.Divisor)
+}
+
+func custom_divide(a, b int) (int, error) {
+	if b == 0 {
+		return 0, &DivideError{Dividend: a, Divisor: b}
+	}
+	return a / b, nil
+}
+
+func main() {
+	// errors 接口
+	err := errors.New("this is an error")
+	fmt.Println(err)
+
+	x := 16.0
+	sqrt, err := MySqrt(x)
+	if err != nil {
+		fmt.Println("error:", err)
+		return
+	}
+	fmt.Println("sqrt:", sqrt)
+
+	// 显示返回错误
+	result, err := divide(10, 0)
+	if err != nil {
+		fmt.Println("Error: ", err)
+	} else {
+		fmt.Println("Result: ", result)
+	}
+
+	// 自定义错误
+	_, err = custom_divide(10, 0)
+	if err != nil {
+		fmt.Println(err)
+	}
+}

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.