
-
Урок 1. 00:02:56Environment Setup
-
Урок 2. 00:02:47VSCode Installation
-
Урок 3. 00:03:23Go Support in VSCode
-
Урок 4. 00:03:12Boring Ol' Hello World
-
Урок 5. 00:06:17Five Important Questions
-
Урок 6. 00:06:11Go Packages
-
Урок 7. 00:03:59Import Statements
-
Урок 8. 00:03:35File Organization
-
Урок 9. 00:02:32Project Overview
-
Урок 10. 00:01:56New Project Folder
-
Урок 11. 00:10:41Variable Declarations
-
Урок 12. 00:07:43Functions and Return Types
-
Урок 13. 00:10:50Slices and For Loops
-
Урок 14. 00:04:34OO Approach vs Go Approach
-
Урок 15. 00:06:41Custom Type Declarations
-
Урок 16. 00:06:17Receiver Functions
-
Урок 17. 00:10:58Creating a New Deck
-
Урок 18. 00:05:57Slice Range Syntax
-
Урок 19. 00:08:12Multiple Return Values
-
Урок 20. 00:07:00Byte Slices
-
Урок 21. 00:07:27Deck to String
-
Урок 22. 00:06:37Joining a Slice of Strings
-
Урок 23. 00:07:03Saving Data to the Hard Drive
-
Урок 24. 00:11:19Reading From the Hard Drive
-
Урок 25. 00:07:53Error Handling
-
Урок 26. 00:09:43Shuffling a Deck
-
Урок 27. 00:10:31Random Number Generation
-
Урок 28. 00:03:41Testing With Go
-
Урок 29. 00:12:04Writing Useful Tests
-
Урок 30. 00:04:23Asserting Elements in a Slice
-
Урок 31. 00:09:53Testing File IO
-
Урок 32. 00:06:18Project Review
-
Урок 33. 00:04:44Structs in Go
-
Урок 34. 00:03:55Defining Structs
-
Урок 35. 00:04:52Declaring Structs
-
Урок 36. 00:05:37Updating Struct Values
-
Урок 37. 00:06:31Embedding Structs
-
Урок 38. 00:07:27Structs with Receiver Functions
-
Урок 39. 00:05:53Pass By Value
-
Урок 40. 00:03:13Structs with Pointers
-
Урок 41. 00:10:14Pointer Operations
-
Урок 42. 00:06:27Pointer Shortcut
-
Урок 43. 00:04:10Gotchas With Pointers
-
Урок 44. 00:07:39Reference vs Value Types
-
Урок 45. 00:05:48What's a Map?
-
Урок 46. 00:04:56Manipulating Maps
-
Урок 47. 00:05:17Iterating Over Maps
-
Урок 48. 00:05:55Differences Between Maps and Structs
-
Урок 49. 00:09:26Purpose of Interfaces
-
Урок 50. 00:10:15Problems Without Interfaces
-
Урок 51. 00:09:17Interfaces in Practice
-
Урок 52. 00:07:49Rules of Interfaces
-
Урок 53. 00:06:59Extra Interface Notes
-
Урок 54. 00:08:00The HTTP Package
-
Урок 55. 00:05:36Reading the Docs
-
Урок 56. 00:03:14More Interface Syntax
-
Урок 57. 00:01:54Interface Review
-
Урок 58. 00:08:18The Reader Interface
-
Урок 59. 00:07:24More on the Reader Interface
-
Урок 60. 00:05:39Working with the Read Function
-
Урок 61. 00:04:16The Writer Interface
-
Урок 62. 00:05:13The io.Copy Function
-
Урок 63. 00:04:34The Implementation of io.Copy
-
Урок 64. 00:07:57A Custom Writer
-
Урок 65. 00:05:29Website Status Checker
-
Урок 66. 00:04:33Printing Site Status
-
Урок 67. 00:03:28Serial Link Checking
-
Урок 68. 00:07:13Go Routines
-
Урок 69. 00:08:42Theory of Go Routines
-
Урок 70. 00:06:10Channels
-
Урок 71. 00:09:17Channel Implementation
-
Урок 72. 00:09:56Blocking Channels
-
Урок 73. 00:03:33Receiving Messages
-
Урок 74. 00:06:46Repeating Routines
-
Урок 75. 00:03:59Alternative Loop Syntax
-
Урок 76. 00:06:15Sleeping a Routine
-
Урок 77. 00:04:49Function Literals
-
Урок 78. 00:10:33Channels Gotcha!
For newbies it won't be enough, for those like me with some experience in other languages - i'd rather see more real life examples.
Here's the method shuffles items properly.
func (d deck) shuffle() {
rand.Seed(time.Now().UnixNano())
rand.Shuffle(len(d), func(i, j int) {
d[i], d[j] = d[j], d[i]
})
}
Basically, you need to add rand.Seed(time.Now().UnixNano()) before calling rand.Intn()
Last updated 7/2021
Не плохо бы обновить)