title
Golang Tutorial : Go Full Course
description
Ask me Anything Anytime on Twitter: https://x.com/NewThinkTank
I created this Golang tutorial to be the definitive course. I provide in this full course more information than you can get in any book. The table of contents follows below. Both the core language and numerous projects are provided to help you master Go. Also there is only one 5 second ad, so nothing will get in the way of your learning process!
Go is one of the fastest growing languages and for good reason. Go makes it very easy to write fast code without having to tweak with the code. The code is understandable, efficient, excels at concurrency, provides great backend support for web apps, handles errors much like Rust and manages memory efficiently.
Get the Code : https://github.com/derekbanas/Go-Tutorial
Best Go Book : https://amzn.to/3SIIjoo
MY UDEMY COURSES ARE 87.5% OFF TIL May 1st ($9.99)
➡️ Python Data Science Series: Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_52
➡️ C++ Programming Bootcamp Series: Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments https://bit.ly/C_Course_52
➡️ Golang Course: 15 Hrs + Web Apps + Core Language + Create a Blog + PostgreSQL + Problem Solving https://bit.ly/go-tutorial10
#golang #GoTutorial #fullcourse
TABLE OF CONTENTS
00:00 Intro
01:44 Package
02:15 Import
02:42 Alias
03:19 Comments
03:40 Main
04:27 User Input
06:00 Error Handling
06:35 Blank Identifier
07:33 Variables
10:19 Data Types
12:12 Casting
12:30 Casting Strings
17:33 If Conditional
20:56 Strings
29:19 Runes
31:15 Printf
33:15 Time
34:39 Math
44:35 For Loop
46:25 While Loop
53:16 Range
54:23 Arrays
1:01:18 Slices
1:08:29 Functions
1:10:20 Return Multiple
1:11:05 Function Errors
1:13:11 Varadic Functions
1:14:35 Passing Arrays
1:17:50 Pointers
1:21:35 Pass Array Pointers
1:26:09 File IO
1:37:11 Command Line
1:43:03 Packages / Modules
1:52:40 Maps
1:59:27 Generics
2:00:38 Constraints
2:04:24 Structs
2:12:04 Composition
2:16:05 Defined types
2:21:54 Associate Methods
2:24:50 Protecting Data
2:25:12 Getter / Setter
2:31:00 Encapsulation
2:33:42 Interfaces
2:38:39 Concurrency / GoRoutines
2:40:49 Sleep
2:42:10 Channels
2:45:16 Mutex / Lock
2:51:13 Closures
2:53:13 Passing Functions
2:55:50 Recursion
2:58:59 Regular Expressions
3:07:00 Automated Testing
3:16:42 Web app
3:38:44 Templates / HTML
3:45:16 Installation
detail
{'title': 'Golang Tutorial : Go Full Course', 'heatmap': [{'end': 13752.689, 'start': 13617.377, 'weight': 1}], 'summary': 'Covers a comprehensive golang tutorial with benefits including being a general purpose language and excelling at concurrency, discusses go variables, data types, string manipulation, math functions, arrays, functions, concurrency, advanced features, encapsulation, and web app development, and includes practical examples and demonstrations.', 'chapters': [{'end': 472.959, 'segs': [{'end': 27.639, 'src': 'embed', 'start': 0.069, 'weight': 0, 'content': [{'end': 4.514, 'text': 'Well, hello Internet and welcome to my Golang full course video tutorial.', 'start': 0.069, 'duration': 4.445}, {'end': 7.697, 'text': 'You guys asked me to cover just about everything with Golang.', 'start': 4.794, 'duration': 2.903}, {'end': 9.479, 'text': 'In this video, I am going to do it.', 'start': 7.757, 'duration': 1.722}, {'end': 11.441, 'text': "This is the longest video I've ever made.", 'start': 9.719, 'duration': 1.722}, {'end': 15.113, 'text': 'This is just a brief sampling of everything that will be taught.', 'start': 11.772, 'duration': 3.341}, {'end': 17.775, 'text': "In the description underneath, you'll find all the code.", 'start': 15.454, 'duration': 2.321}, {'end': 19.095, 'text': "It's on GitHub for free.", 'start': 17.795, 'duration': 1.3}, {'end': 23.177, 'text': 'And also, there are no ads for the rest of this video.', 'start': 19.575, 'duration': 3.602}, {'end': 27.639, 'text': "And you'll be able to jump around and to all the individual pieces you want to learn.", 'start': 23.517, 'duration': 4.122}], 'summary': 'Comprehensive golang tutorial, longest video made, free code on github, ad-free.', 'duration': 27.57, 'max_score': 0.069, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc69.jpg'}, {'end': 427.642, 'src': 'embed', 'start': 403.317, 'weight': 1, 'content': [{'end': 412.962, 'text': "So I'm going to say if the error is equal to nil, well in that situation I know I did not get an error.", 'start': 403.317, 'duration': 9.645}, {'end': 420.105, 'text': 'More on the specifics of why I know that, but just understand that if nil is passed back that means there was no error.', 'start': 413.082, 'duration': 7.023}, {'end': 427.642, 'text': "I'm then going to follow that up with the name that they gave me and otherwise I'm going Else.", 'start': 420.745, 'duration': 6.897}], 'summary': 'If error equals nil, there was no error encountered.', 'duration': 24.325, 'max_score': 403.317, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc403317.jpg'}], 'start': 0.069, 'title': 'Golang tutorial and basics', 'summary': 'Covers a comprehensive golang tutorial with benefits such as being a general purpose language, easy to understand, and excelling at concurrency. it also covers the basics of go programming, including creating a directory, defining packages, importing packages, using aliases, defining functions, handling user inputs, and declaring variables. the video is the longest made and includes free code available on github.', 'chapters': [{'end': 84.348, 'start': 0.069, 'title': 'Golang full course tutorial', 'summary': 'Covers a comprehensive golang tutorial, including its benefits such as being a general purpose language, easy to understand, and excelling at concurrency. the video is the longest made and includes free code available on github.', 'duration': 84.279, 'highlights': ['Golang is a fantastic general purpose language that allows writing good code with ease and excels at concurrency, offering fast code writing and strong typing.', 'The tutorial video is the longest ever made and includes free code available on GitHub for users to access.', 'Golang offers benefits such as easy understanding, fast code writing, strong typing, and excelling at concurrency, making it a great backend language.']}, {'end': 472.959, 'start': 84.408, 'title': 'Go programming basics', 'summary': 'Covers the basics of go programming, including creating a directory, defining packages, importing packages, using aliases, defining functions, handling user inputs, and declaring variables.', 'duration': 388.551, 'highlights': ["The chapter covers the basics of Go programming, including creating a directory, defining packages, importing packages, using aliases, defining functions, handling user inputs, and declaring variables. The transcript provides an overview of the basics of Go programming, such as creating a directory, defining packages using 'package main', and importing packages. It also covers using aliases for package functions, defining the main function, handling user inputs, and declaring variables with their naming conventions.", "It specifically looks for a function called main, and that's where it begins its execution. In Go programming, the main function is where the program execution begins, and it specifically looks for a function called main to start the execution.", 'I am then going to go and get some user input. The speaker discusses obtaining user input in Go programming by setting up a buffered reader to retrieve text from the keyboard.', "I'm going to store this input inside of name, but I also want to protect against some type of error occurring. The transcript explains the process of storing user input in a variable while handling potential errors by checking for nil and displaying error messages using log.fatal.", "You're going to define all your functions by typing in func and main. The chapter emphasizes defining functions in Go programming using the 'func' keyword, with the main function being used as the starting point of execution."]}], 'duration': 472.89, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc69.jpg', 'highlights': ['Golang is a fantastic general purpose language that excels at concurrency and offers fast code writing and strong typing.', 'The tutorial video is the longest ever made and includes free code available on GitHub for users to access.', 'The chapter covers the basics of Go programming, including creating a directory, defining packages, importing packages, using aliases, defining functions, handling user inputs, and declaring variables.', 'The main function in Go programming is where the program execution begins, and it specifically looks for a function called main to start the execution.', 'The speaker discusses obtaining user input in Go programming by setting up a buffered reader to retrieve text from the keyboard.', "The chapter emphasizes defining functions in Go programming using the 'func' keyword, with the main function being used as the starting point of execution."]}, {'end': 1403.998, 'segs': [{'end': 682.611, 'src': 'embed', 'start': 632.861, 'weight': 0, 'content': [{'end': 639.842, 'text': "They're going to have default values, ints of 0, floats of 0.0, booleans are going to be false.", 'start': 632.861, 'duration': 6.981}, {'end': 641.803, 'text': 'Of course, booleans have true or false values.', 'start': 639.922, 'duration': 1.881}, {'end': 646.824, 'text': 'And strings and ruins are just going to be empty values with nothing inside of them.', 'start': 642.283, 'duration': 4.541}, {'end': 648.144, 'text': "Let's go in.", 'start': 647.444, 'duration': 0.7}, {'end': 653.185, 'text': 'We can say something like we want to go and check out the different types.', 'start': 648.184, 'duration': 5.001}, {'end': 656.665, 'text': 'So we can say type of like that.', 'start': 653.685, 'duration': 2.98}, {'end': 659.786, 'text': 'And we want to find out what 25 is inside of here.', 'start': 657.325, 'duration': 2.461}, {'end': 667.089, 'text': 'You can see we are getting an error right here, and that just means we need to come up here and throw this in there again.', 'start': 661.004, 'duration': 6.085}, {'end': 672.734, 'text': 'So reflect, and we can use that as well.', 'start': 667.75, 'duration': 4.984}, {'end': 676.638, 'text': 'And you can see that the unused libraries disappeared.', 'start': 673.375, 'duration': 3.263}, {'end': 680.671, 'text': "And we'll go and throw some other different types of data inside of here.", 'start': 677.35, 'duration': 3.321}, {'end': 682.031, 'text': "So let's do 3.14.", 'start': 681.111, 'duration': 0.92}, {'end': 682.611, 'text': "And we'll do true.", 'start': 682.031, 'duration': 0.58}], 'summary': 'Exploring data types and their default values with examples.', 'duration': 49.75, 'max_score': 632.861, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc632861.jpg'}, {'end': 772.938, 'src': 'embed', 'start': 719.061, 'weight': 1, 'content': [{'end': 723.402, 'text': "And you're going to see all the different data types that we have under these circumstances.", 'start': 719.061, 'duration': 4.341}, {'end': 726.683, 'text': 'Okay, so basics of data types.', 'start': 723.422, 'duration': 3.261}, {'end': 731.59, 'text': "More is coming and you're going to learn more about different data types as we continue.", 'start': 727.747, 'duration': 3.843}, {'end': 735.093, 'text': "But now I want to talk about casting because it's very important.", 'start': 731.931, 'duration': 3.162}, {'end': 741.939, 'text': "Now to cast, all you're going to need to do is let's just go and create a variable like this.", 'start': 735.754, 'duration': 6.185}, {'end': 750.506, 'text': "Let's call this CV1 and go and allow the compiler to find the data type for this.", 'start': 742.659, 'duration': 7.847}, {'end': 752.327, 'text': "And we'll go CV2, so ZV2.", 'start': 751.246, 'duration': 1.081}, {'end': 757.595, 'text': 'And equal to.', 'start': 756.734, 'duration': 0.861}, {'end': 762.198, 'text': 'Now, if we want to go and get this float and convert it into an integer,', 'start': 758.055, 'duration': 4.143}, {'end': 767.863, 'text': 'all you need to do is put whatever type you want it to become on the outside of the parentheses.', 'start': 762.198, 'duration': 5.665}, {'end': 770.217, 'text': "And that's what it'll do.", 'start': 768.696, 'duration': 1.521}, {'end': 772.938, 'text': "It'll automatically go and convert that for you.", 'start': 770.517, 'duration': 2.421}], 'summary': 'Learning about different data types, casting, and converting float to integer.', 'duration': 53.877, 'max_score': 719.061, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc719061.jpg'}, {'end': 896.174, 'src': 'embed', 'start': 872.776, 'weight': 3, 'content': [{'end': 880.919, 'text': 'And you can also see we successfully were able to convert our string type into an integer type, as you can see right there.', 'start': 872.776, 'duration': 8.143}, {'end': 890.052, 'text': "Now if you would want to convert an int into a string, let's just call this cv5, All the code is available on GitHub, by the way.", 'start': 881.279, 'duration': 8.773}, {'end': 891.533, 'text': 'I guess I probably should have said that earlier.', 'start': 890.072, 'duration': 1.461}, {'end': 894.154, 'text': 'And you can go and download it for free.', 'start': 892.293, 'duration': 1.861}, {'end': 896.174, 'text': "And there's a link in the description.", 'start': 894.394, 'duration': 1.78}], 'summary': 'Code successfully converts string to integer. available on github for free download.', 'duration': 23.398, 'max_score': 872.776, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc872776.jpg'}, {'end': 956.901, 'src': 'embed', 'start': 931.602, 'weight': 9, 'content': [{'end': 937.61, 'text': "How would we do that? Let's go change this into CV7 and get rid of this part.", 'start': 931.602, 'duration': 6.008}, {'end': 940.811, 'text': 'Change this to 3.14.', 'start': 937.99, 'duration': 2.821}, {'end': 943.973, 'text': "And let's go get rid of this altogether.", 'start': 940.811, 'duration': 3.162}, {'end': 947.214, 'text': 'And what I want to do is I want to handle potential error.', 'start': 944.633, 'duration': 2.581}, {'end': 948.295, 'text': "I'm going to say if.", 'start': 947.234, 'duration': 1.061}, {'end': 952.879, 'text': "We'll get more into if statements later on.", 'start': 950.478, 'duration': 2.401}, {'end': 956.901, 'text': "But if you're learning Go right now, Go is normally not a first language.", 'start': 952.939, 'duration': 3.962}], 'summary': 'Discussion on making changes, handling errors, and go as a first language.', 'duration': 25.299, 'max_score': 931.602, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc931602.jpg'}, {'end': 1335.58, 'src': 'embed', 'start': 1303.017, 'weight': 5, 'content': [{'end': 1310.282, 'text': "And I'm going to follow this up with new replacer and I'm going to say hey, anywhere you see.", 'start': 1303.017, 'duration': 7.265}, {'end': 1313.304, 'text': 'whoops, this is going to be strings dot.', 'start': 1310.282, 'duration': 3.022}, {'end': 1318.748, 'text': "anywhere you see an A, what I'd like you to do is to place another there instead.", 'start': 1313.304, 'duration': 5.444}, {'end': 1319.649, 'text': 'All right.', 'start': 1319.229, 'duration': 0.42}, {'end': 1321.931, 'text': 'And that is going to work for us.', 'start': 1319.789, 'duration': 2.142}, {'end': 1328.395, 'text': 'And then what we can do is we can use this replacer to come in and replace those values.', 'start': 1322.431, 'duration': 5.964}, {'end': 1335.58, 'text': "So we'll say replacer dot replace and SV1.", 'start': 1328.876, 'duration': 6.704}], 'summary': "Using new replacer to replace 'a' with 'there', ready to replace sv1", 'duration': 32.563, 'max_score': 1303.017, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc1303017.jpg'}], 'start': 474.099, 'title': 'Go language fundamentals', 'summary': 'Discusses go variables, naming conventions, type declarations, core data types including ints, float64s, bools, strings, and runes, casting between data types, conditional logic with if statements, condition operators, and string manipulation.', 'chapters': [{'end': 610.329, 'start': 474.099, 'title': 'Go variables and naming conventions', 'summary': 'Discusses go variables, naming conventions, and type declarations, highlighting that variables starting with a capital letter are considered exported, camelcase is used for naming conventions, and the mutability of variables in go.', 'duration': 136.23, 'highlights': ['Variables starting with a capital letter are considered exported, allowing access outside the package.', 'CamelCase is used for naming conventions inside of Go.', 'Variables are mutable by default in Go, allowing values to change as long as the data type is the same.', 'Type declarations are inferred by the compiler when variables are defined without specifying a data type.']}, {'end': 896.174, 'start': 610.71, 'title': 'Variables, data types, and casting', 'summary': 'Covers naming conventions for variables, core data types including ints, float64s, bools, strings, and runes with default values, and the process of casting, with examples and code demonstrations.', 'duration': 285.464, 'highlights': ['The chapter covers core data types including ints, float64s, bools, strings, and runes with default values. The chapter discusses the core data types such as ints, float64s, bools, strings, and runes, along with their default values.', 'The chapter explains the process of casting, with examples and code demonstrations. The process of casting is explained with examples and code demonstrations, including converting float to integer and string to integer.', 'The chapter discusses naming conventions for variables. The chapter covers naming conventions for variables.']}, {'end': 1403.998, 'start': 896.935, 'title': 'Go language: casting and conditional logic', 'summary': 'Covers casting between integer and ascii, float and string, and conditional logic in go including if statements, condition operators, and boolean values, and string manipulation such as replacing characters, getting string length, checking for string containment, and finding the first index match.', 'duration': 507.063, 'highlights': ['The chapter explains the casting between integer and ASCII, float and string, providing examples and error handling, and formatted printing for float conversion.', 'It covers the if statements, conditional operators, logical operators, and multiple conditions in Go, with a detailed explanation and practical examples.', "The chapter also delves into the usage of boolean values, specifically the 'not' operator with an example, and the importance of space in print line function.", 'It provides insights into string manipulation including replacing characters in a string using replacer, getting the length of a string, checking for string containment, and finding the first index match for a given letter.']}], 'duration': 929.899, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc474099.jpg', 'highlights': ['Variables starting with a capital letter are considered exported, allowing access outside the package.', 'The chapter covers core data types including ints, float64s, bools, strings, and runes with default values.', 'The chapter explains the casting between integer and ASCII, float and string, providing examples and error handling, and formatted printing for float conversion.', 'The chapter discusses naming conventions for variables.', 'It covers the if statements, conditional operators, logical operators, and multiple conditions in Go, with a detailed explanation and practical examples.', 'It provides insights into string manipulation including replacing characters in a string using replacer, getting the length of a string, checking for string containment, and finding the first index match for a given letter.', 'Variables are mutable by default in Go, allowing values to change as long as the data type is the same.', 'Type declarations are inferred by the compiler when variables are defined without specifying a data type.', "The chapter also delves into the usage of boolean values, specifically the 'not' operator with an example, and the importance of space in print line function.", 'The chapter explains the process of casting, with examples and code demonstrations.']}, {'end': 2315.425, 'segs': [{'end': 1470.418, 'src': 'embed', 'start': 1440.508, 'weight': 4, 'content': [{'end': 1444.691, 'text': "And I'm going to say strings.replace.", 'start': 1440.508, 'duration': 4.183}, {'end': 1447.092, 'text': "I'm typing a little fast here.", 'start': 1444.711, 'duration': 2.381}, {'end': 1452.375, 'text': "The string we want to work with is this one, the one we've been playing around with.", 'start': 1447.893, 'duration': 4.482}, {'end': 1454.417, 'text': "And we want to search for O's.", 'start': 1452.896, 'duration': 1.521}, {'end': 1457.178, 'text': "And we want to replace them with 0's.", 'start': 1455.057, 'duration': 2.121}, {'end': 1461.461, 'text': "And I'm going to type in negative 1.", 'start': 1458.379, 'duration': 3.082}, {'end': 1463.662, 'text': 'And this is going to search everywhere.', 'start': 1461.461, 'duration': 2.201}, {'end': 1470.418, 'text': "And if I had like a 2 or something like that, It's going to replace the first two matches.", 'start': 1464.122, 'duration': 6.296}], 'summary': "Using strings.replace to replace o's with 0's, searching everywhere, with -1 replacing all occurrences.", 'duration': 29.91, 'max_score': 1440.508, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc1440508.jpg'}, {'end': 1902.087, 'src': 'embed', 'start': 1872.535, 'weight': 0, 'content': [{'end': 1875.478, 'text': "So another thing I'd like to talk about is a printf function.", 'start': 1872.535, 'duration': 2.943}, {'end': 1878.577, 'text': "What this is, is it's just formatted printing.", 'start': 1875.796, 'duration': 2.781}, {'end': 1887.301, 'text': 'And it just makes it very easy for us to place our different variable values in multiple different places inside of a string.', 'start': 1878.957, 'duration': 8.344}, {'end': 1890.522, 'text': 'So the very first thing I want to do is I want to print the index.', 'start': 1887.801, 'duration': 2.721}, {'end': 1897.585, 'text': "And now for this string, that's going to be 0 for A, B is going to be 1, and it's going to continue there forth forever.", 'start': 1891.002, 'duration': 6.583}, {'end': 1902.087, 'text': 'All right, so if I want an integer, I want to place an integer in this final string.', 'start': 1898.145, 'duration': 3.942}], 'summary': 'Discussion on printf function for formatted printing, demonstrating index values and integer placement in a string.', 'duration': 29.552, 'max_score': 1872.535, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc1872535.jpg'}, {'end': 1972.286, 'src': 'embed', 'start': 1941.299, 'weight': 1, 'content': [{'end': 1946.762, 'text': "And what's gonna happen is this guy right here is gonna go right here in what prints out on the screen.", 'start': 1941.299, 'duration': 5.463}, {'end': 1954.928, 'text': "And we're gonna go rune value This guy right here is going to be printed where this is, where that string is.", 'start': 1947.282, 'duration': 7.646}, {'end': 1959.653, 'text': "And then we will, what else? Oh, I'm going to go ruin value again.", 'start': 1955.708, 'duration': 3.945}, {'end': 1965.118, 'text': "However, this time instead of a unicode that's going to print out, it's just going to print out the character itself.", 'start': 1959.673, 'duration': 5.445}, {'end': 1972.286, 'text': 'And if we go and run it, we can go and, oh, UTF-8? I thought I typed it in up here.', 'start': 1965.819, 'duration': 6.467}], 'summary': 'Demonstrating printing of unicode characters and utf-8 encoding.', 'duration': 30.987, 'max_score': 1941.299, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc1941299.jpg'}], 'start': 1404.778, 'title': 'String manipulation and functions in python and go', 'summary': "Demonstrates string manipulation in python, focusing on replacing 'o' with '0', and covers various string manipulation techniques in go, including whitespace removal, case conversion, prefix/suffix checking, and insights into string functions, runes, time handling, and math operations, providing practical examples and comprehensive overviews of different string functions.", 'chapters': [{'end': 1470.418, 'start': 1404.778, 'title': 'String manipulation with python', 'summary': "Demonstrates string manipulation in python, including the use of index and replace functions to find and replace specific characters, with a focus on replacing 'o' with '0' using the replace function.", 'duration': 65.64, 'highlights': ["The chapter demonstrates the use of the index function to find the position of a specific character within a string, exemplified by the search for the letter 'O' using strings.index SV2.", "It showcases the utilization of the replace function to replace all occurrences of 'O' with '0' within a string, with the ability to specify the number of replacements to be made by using the negative 1 parameter or a specific number like 2."]}, {'end': 1733.681, 'start': 1470.998, 'title': 'Working with strings in go', 'summary': 'Covers various string manipulation techniques in go, including removing whitespace, splitting strings, converting to lowercase and uppercase, and checking for prefixes and suffixes, providing a comprehensive overview of different string functions with practical examples and insights.', 'duration': 262.683, 'highlights': ['The length of the string is 12, showcasing the practical application of checking the length of a string.', "Demonstration of using 'has prefix' and 'has suffix' to check if a string begins or ends with a specific sequence, providing practical use cases of these functions.", 'Explanation of splitting a string based on a delimiter, with the example of Strings.Split, providing a clear understanding of how to extract individual pieces of data from a string.', "Illustration of converting strings to lowercase and uppercase using 'strings.ToLower' and 'strings.ToUpper', demonstrating how to manipulate the case of strings for analysis and comparison.", "Demonstration of removing whitespace characters from a string using 'strings.TrimSpace', showcasing the practical use of this function in cleaning up strings for further processing."]}, {'end': 2315.425, 'start': 1734.021, 'title': 'String functions, runes, time, and math in go', 'summary': 'Covers string functions, runes, time handling, and math operations in go, including the use of unicode representation for characters, obtaining time information, and generating random values using the time library, as well as basic math functions and operator usage.', 'duration': 581.404, 'highlights': ['The chapter covers string functions, runes, time handling, and math operations in Go. Covers a range of topics including string functions, runes, time handling, and math operations.', 'Including the use of Unicode representation for characters. Explains the concept of runes as Unicode representation for characters in Go.', 'Obtaining time information and generating random values using the time library. Demonstrates obtaining time information and generating random values using the time library, including obtaining current time, year, month, day, hour, minute, and second.', 'Basic math functions and operator usage. Covers basic math functions, arithmetic operators, shorthand incrementing, and working with float values.']}], 'duration': 910.647, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc1404778.jpg', 'highlights': ['The chapter covers string functions, runes, time handling, and math operations in Go. Covers a range of topics including string functions, runes, time handling, and math operations.', "Demonstration of using 'has prefix' and 'has suffix' to check if a string begins or ends with a specific sequence, providing practical use cases of these functions.", "Illustration of converting strings to lowercase and uppercase using 'strings.ToLower' and 'strings.ToUpper', demonstrating how to manipulate the case of strings for analysis and comparison.", "Demonstration of removing whitespace characters from a string using 'strings.TrimSpace', showcasing the practical use of this function in cleaning up strings for further processing.", 'Obtaining time information and generating random values using the time library. Demonstrates obtaining time information and generating random values using the time library, including obtaining current time, year, month, day, hour, minute, and second.']}, {'end': 3144.624, 'segs': [{'end': 2345.302, 'src': 'embed', 'start': 2315.945, 'weight': 2, 'content': [{'end': 2318.387, 'text': "And we're not using rand anymore either.", 'start': 2315.945, 'duration': 2.442}, {'end': 2319.487, 'text': "So let's get rid of that.", 'start': 2318.407, 'duration': 1.08}, {'end': 2323.35, 'text': 'And you can see here are all of our different math operators.', 'start': 2319.948, 'duration': 3.402}, {'end': 2327.032, 'text': 'And some other things that might be kind of useful.', 'start': 2324.35, 'duration': 2.682}, {'end': 2328.213, 'text': 'Well, we can just run this.', 'start': 2327.152, 'duration': 1.061}, {'end': 2332.496, 'text': "And you can see there's the math operators and how they operate.", 'start': 2328.873, 'duration': 3.623}, {'end': 2342.04, 'text': "And another thing that might be kind of useful for you is, let's say you would want to convert 90 degrees into radians.", 'start': 2333.375, 'duration': 8.665}, {'end': 2343.441, 'text': "Let's go like this.", 'start': 2342.06, 'duration': 1.381}, {'end': 2345.302, 'text': "That's how you can do that.", 'start': 2344.061, 'duration': 1.241}], 'summary': 'Demonstration of math operators and conversion from degrees to radians.', 'duration': 29.357, 'max_score': 2315.945, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc2315945.jpg'}, {'end': 2421.784, 'src': 'embed', 'start': 2390.824, 'weight': 3, 'content': [{'end': 2396.007, 'text': "And of course there's going to be all the different trig functions you could ever want.", 'start': 2390.824, 'duration': 5.183}, {'end': 2402.39, 'text': "So let's say you wanted to do the sine of 90.", 'start': 2396.447, 'duration': 5.943}, {'end': 2403.61, 'text': "Let's go like this.", 'start': 2402.39, 'duration': 1.22}, {'end': 2405.091, 'text': 'This will be 90 degrees.', 'start': 2403.75, 'duration': 1.341}, {'end': 2413.354, 'text': 'But what I want is the radian version 490 because the trig functions all work with radians, not degrees.', 'start': 2405.451, 'duration': 7.903}, {'end': 2421.784, 'text': "So I'm going to say math.sign and then pass R90 and that is the radian version of 90 degrees.", 'start': 2413.935, 'duration': 7.849}], 'summary': 'Teaching about using math.sin to convert degrees to radians.', 'duration': 30.96, 'max_score': 2390.824, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc2390824.jpg'}, {'end': 2656.956, 'src': 'embed', 'start': 2631.761, 'weight': 0, 'content': [{'end': 2641.376, 'text': 'just to keep everything all condensed for the people that want to be able to jump around by just clicking on the table of contents in the description.', 'start': 2631.761, 'duration': 9.615}, {'end': 2647.691, 'text': "So as printf, what it's going to do is it's going to format a string and return it instead of putting it in output.", 'start': 2642.048, 'duration': 5.643}, {'end': 2656.956, 'text': "So let's just say something like 9.f and a new line, and then follow that up with pi like that.", 'start': 2648.251, 'duration': 8.705}], 'summary': 'Printf formats a string and returns it instead of outputting, e.g., 9.f and pi.', 'duration': 25.195, 'max_score': 2631.761, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc2631761.jpg'}, {'end': 2976.484, 'src': 'embed', 'start': 2949.758, 'weight': 1, 'content': [{'end': 2954.522, 'text': "And I'm going to go reader dot read string.", 'start': 2949.758, 'duration': 4.764}, {'end': 2958.585, 'text': "And it's going to read everything up until it gets a new line statement.", 'start': 2954.542, 'duration': 4.043}, {'end': 2961.427, 'text': "But of course, I'm going to need to declare this first.", 'start': 2959.105, 'duration': 2.322}, {'end': 2962.427, 'text': "It's a buffered reader.", 'start': 2961.507, 'duration': 0.92}, {'end': 2967.251, 'text': "And I'm also going to need to go get this library that's right here as well as OS.", 'start': 2962.908, 'duration': 4.343}, {'end': 2972.062, 'text': 'So throw that in there and then also OS like that.', 'start': 2968.16, 'duration': 3.902}, {'end': 2973.983, 'text': "And then we'll just continue working here.", 'start': 2972.342, 'duration': 1.641}, {'end': 2976.484, 'text': "I'm going to handle any errors that we might get.", 'start': 2974.003, 'duration': 2.481}], 'summary': 'Using buffered reader to read string until new line. handling errors.', 'duration': 26.726, 'max_score': 2949.758, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc2949758.jpg'}], 'start': 2315.945, 'title': 'Go: math functions, formatted print, and for loops', 'summary': 'Covers math operators, conversion between degrees and radians, trigonometric functions, and formatted printing as well as for loops in go, providing examples and explanations for each.', 'chapters': [{'end': 2616.757, 'start': 2315.945, 'title': 'Go: math functions & formatted print', 'summary': 'Covers math operators, conversion between degrees and radians, trigonometric functions, and formatted printing in go, with examples and explanations provided for each.', 'duration': 300.812, 'highlights': ['The trig functions all work with radians, not degrees, and 1.57 radians is equal to 90 degrees, as demonstrated with math conversions.', 'Formatted printing in Go is explained, including the use of different codes for characters, floats, and the type of the supplied value, with practical examples provided.', 'An overview of math operators and their operations in Go, along with the importance of using capital letters for functions from different package libraries.', 'Demonstration of formatting output with a total width of nine and limiting decimal places, showcasing practical examples of formatted printing.']}, {'end': 3144.624, 'start': 2617.197, 'title': 'Formatted printing and for loops', 'summary': 'Covers formatted printing and for loops in go, including examples of using printf to format strings, creating for loops to print numbers, and creating an infinite loop using a while true loop for a guessing game.', 'duration': 527.427, 'highlights': ['The chapter covers formatted printing using printf to format strings and return instead of putting it in output, with examples of outputting formatted strings and using the sp1 function to display the same output (5 counts).', 'The chapter provides a detailed explanation of for loops, including the standard setup, initializing a variable, setting the loop condition, using a post statement as an incrementer, and the body of the for loop, with examples of creating for loops to print numbers 1 through 5 and in the opposite order (9 counts).', 'The chapter demonstrates the use of for loops to create while loops, with an example of using for true loop to create an infinite loop for a guessing game, covering the use of random number generation, input handling, and the application of break and continue statements within the loop (11 counts).']}], 'duration': 828.679, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc2315945.jpg', 'highlights': ['The chapter demonstrates the use of for loops to create while loops, with an example of using for true loop to create an infinite loop for a guessing game, covering the use of random number generation, input handling, and the application of break and continue statements within the loop (11 counts).', 'The chapter provides a detailed explanation of for loops, including the standard setup, initializing a variable, setting the loop condition, using a post statement as an incrementer, and the body of the for loop, with examples of creating for loops to print numbers 1 through 5 and in the opposite order (9 counts).', 'The chapter covers formatted printing using printf to format strings and return instead of putting it in output, with examples of outputting formatted strings and using the sp1 function to display the same output (5 counts).', 'An overview of math operators and their operations in Go, along with the importance of using capital letters for functions from different package libraries.']}, {'end': 4377.839, 'segs': [{'end': 3173.915, 'src': 'embed', 'start': 3144.644, 'weight': 0, 'content': [{'end': 3146.145, 'text': "All right, let's go and run it.", 'start': 3144.644, 'duration': 1.501}, {'end': 3153.18, 'text': 'And it says guess a number between 0 and 50, and we know that the number here in this circumstance is 19.', 'start': 3146.596, 'duration': 6.584}, {'end': 3154.441, 'text': "So let's just bring this up here.", 'start': 3153.18, 'duration': 1.261}, {'end': 3157.983, 'text': "And our random guess, let's say we do 25.", 'start': 3155.141, 'duration': 2.842}, {'end': 3160.705, 'text': 'Whoops, accidentally typed it over here.', 'start': 3157.983, 'duration': 2.722}, {'end': 3161.665, 'text': "Let's get rid of that.", 'start': 3160.725, 'duration': 0.94}, {'end': 3164.547, 'text': "And let's come down here.", 'start': 3162.686, 'duration': 1.861}, {'end': 3166.348, 'text': '25 Pick a lower value.', 'start': 3164.567, 'duration': 1.781}, {'end': 3169.63, 'text': 'Well, we know the value is 19, so that is indeed correct.', 'start': 3166.408, 'duration': 3.222}, {'end': 3171.893, 'text': "And let's just play around a little bit longer.", 'start': 3170.291, 'duration': 1.602}, {'end': 3173.915, 'text': 'Say something like 15, pick a higher value.', 'start': 3171.973, 'duration': 1.942}], 'summary': 'Guess a number game with 19, reaching 15 and 25.', 'duration': 29.271, 'max_score': 3144.644, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc3144644.jpg'}, {'end': 3300.911, 'src': 'embed', 'start': 3276.383, 'weight': 3, 'content': [{'end': 3284.316, 'text': "The default values for an array, if you don't put something inside of them, are just going to be 0 for integers and 0.0 for floats,", 'start': 3276.383, 'duration': 7.933}, {'end': 3286.059, 'text': 'false for booleans.', 'start': 3284.316, 'duration': 1.743}, {'end': 3290.366, 'text': "And otherwise, normally, you're just going to have an empty string like that.", 'start': 3286.7, 'duration': 3.666}, {'end': 3295.006, 'text': "And let's go and just declare an integer array.", 'start': 3291.543, 'duration': 3.463}, {'end': 3297.488, 'text': "So I'm going to call this array one.", 'start': 3295.026, 'duration': 2.462}, {'end': 3300.911, 'text': "And I'm going to say that it has five spaces inside of it.", 'start': 3297.508, 'duration': 3.403}], 'summary': 'Default array values are 0 for integers, 0.0 for floats, and false for booleans. an empty string is the default for other types.', 'duration': 24.528, 'max_score': 3276.383, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc3276383.jpg'}, {'end': 3406.373, 'src': 'embed', 'start': 3376.934, 'weight': 1, 'content': [{'end': 3388.862, 'text': "I can go like this and I less than length of the array and follow that up by incrementing the array that we're working with.", 'start': 3376.934, 'duration': 11.928}, {'end': 3389.982, 'text': 'Now I want to keep it up here.', 'start': 3388.922, 'duration': 1.06}, {'end': 3390.863, 'text': 'This works better.', 'start': 3390.183, 'duration': 0.68}, {'end': 3392.524, 'text': 'Whoops Move that down.', 'start': 3391.023, 'duration': 1.501}, {'end': 3400.309, 'text': "And so we go like this and then I'll just go PL array two and I.", 'start': 3393.325, 'duration': 6.984}, {'end': 3406.373, 'text': "And let's say we want to iterate with range just so that you get to see this.", 'start': 3400.309, 'duration': 6.064}], 'summary': 'Demonstrating array iteration and incrementing with pl array and range.', 'duration': 29.439, 'max_score': 3376.934, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc3376934.jpg'}], 'start': 3144.644, 'title': 'Arrays and loop iteration in python and go', 'summary': 'Demonstrates the use of for loops and arrays in python, emphasizing array size and default values. it also covers array iteration, multidimensional arrays, and string manipulation. additionally, it delves into working with arrays, slices, and functions in go, showcasing the creation, manipulation, and iteration of arrays and slices, as well as array slicing and appending values to slices.', 'chapters': [{'end': 3351.312, 'start': 3144.644, 'title': 'Using for loops and arrays in python', 'summary': 'Demonstrates how to use for loops to guess a number and cycle through an array, as well as how to declare and initialize arrays in python, emphasizing the importance of the array size not changing and the default values for different data types.', 'duration': 206.668, 'highlights': ['The chapter demonstrates how to use for loops to guess a number and cycle through an array The tutorial provides an example of using for loops to guess a number between 0 and 50 and cycle through an array to print out all the values, showcasing practical usage of for loops and arrays in Python.', 'The tutorial emphasizes the importance of the array size not changing Emphasizes the significance of the array size remaining constant, highlighting the immutability of the array size in Python and the implication for data storage and manipulation.', 'Explains the default values for different data types in Python arrays Explains the default values for different data types in Python arrays, such as 0 for integers, 0.0 for floats, false for booleans, and empty strings for other data types, providing essential knowledge for array initialization and manipulation.']}, {'end': 3582.668, 'start': 3351.332, 'title': 'Arrays, iteration, and multidimensional arrays', 'summary': 'Covers array iteration, multidimensional arrays, and string manipulation, including examples of array indexing, iteration through arrays, and printing multidimensional arrays.', 'duration': 231.336, 'highlights': ['The chapter covers array iteration, multidimensional arrays, and string manipulation, including examples of array indexing, iteration through arrays, and printing multidimensional arrays.', 'It demonstrates iterating through an array using a for loop and a range, printing both index and value, and creating and printing multidimensional arrays.', 'It also explains the process of creating a string, converting it into a rune array, and iterating through the rune array to print the values.']}, {'end': 3901.197, 'start': 3582.688, 'title': 'Working with arrays and slices', 'summary': 'Covers the creation and manipulation of arrays and slices in go, including converting byte arrays to strings, declaring and assigning values to slices, iterating through slices, and creating slices from arrays. it demonstrates the ability to have multiple slices pointing to the same array and showcases the shorthand notation for accessing specific slice ranges.', 'duration': 318.509, 'highlights': ['Converting Byte Arrays to Strings Demonstrates the process of converting byte arrays to strings in Go, showcasing the creation of byte arrays and their conversion to string using the appropriate syntax.', "Declaring and Assigning Values to Slices Explains the process of declaring and assigning values to slices in Go, including the use of 'make' to create a slice with a specified size and assigning values by index.", "Iterating Through Slices Illustrates the methods of iterating through slices in Go, covering the use of 'for' loops and range-based iterations to access and print slice values.", 'Creating Slices from Arrays Showcases the process of creating slices from arrays in Go, explaining the concept of slices as views of underlying arrays and the shorthand notation for accessing specific slice ranges.']}, {'end': 4377.839, 'start': 3901.577, 'title': 'Go language functions', 'summary': 'Explains array slicing in go, demonstrating how changing the array affects the slice and vice versa, appending values to a slice, and creating and calling functions with different return types and error handling.', 'duration': 476.262, 'highlights': ['The chapter demonstrates how changing an array affects the slice and vice versa, highlighting the underlying connection between them.', 'Appending a value to a slice overwrites array values, showcasing the direct impact on both the slice and the array.', 'Creating and calling functions with different return types and error handling, such as handling a division by zero scenario, is shown, emphasizing the flexibility and error management capabilities of Go functions.']}], 'duration': 1233.195, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc3144644.jpg', 'highlights': ['The tutorial emphasizes the importance of the array size not changing Emphasizes the significance of the array size remaining constant, highlighting the immutability of the array size in Python and the implication for data storage and manipulation.', 'The chapter covers array iteration, multidimensional arrays, and string manipulation, including examples of array indexing, iteration through arrays, and printing multidimensional arrays.', 'Converting Byte Arrays to Strings Demonstrates the process of converting byte arrays to strings in Go, showcasing the creation of byte arrays and their conversion to string using the appropriate syntax.', 'Creating and calling functions with different return types and error handling, such as handling a division by zero scenario, is shown, emphasizing the flexibility and error management capabilities of Go functions.']}, {'end': 6074.655, 'segs': [{'end': 4526.814, 'src': 'embed', 'start': 4499.105, 'weight': 0, 'content': [{'end': 4502.126, 'text': "And so again, I'm going to say sum is equal to zero.", 'start': 4499.105, 'duration': 3.021}, {'end': 4505.547, 'text': "I guess I shouldn't have deleted that last function, but whatever.", 'start': 4502.146, 'duration': 3.401}, {'end': 4514.664, 'text': 'Underscore like this value equal to range for our array that was passed in.', 'start': 4506.128, 'duration': 8.536}, {'end': 4517.787, 'text': "And then I'm going to sum all of these together.", 'start': 4514.684, 'duration': 3.103}, {'end': 4522.511, 'text': 'And then I am going to return a sum like that.', 'start': 4517.807, 'duration': 4.704}, {'end': 4526.814, 'text': "Then down inside of here, I'm going to go and create an array.", 'start': 4522.991, 'duration': 3.823}], 'summary': 'Code for summing an array and returning the total.', 'duration': 27.709, 'max_score': 4499.105, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc4499105.jpg'}, {'end': 4643.964, 'src': 'embed', 'start': 4613.164, 'weight': 8, 'content': [{'end': 4617.182, 'text': 'And then we can say, f3 after function.', 'start': 4613.164, 'duration': 4.018}, {'end': 4621.886, 'text': "So after function, and we're going to see that nothing changed.", 'start': 4617.782, 'duration': 4.104}, {'end': 4624.409, 'text': 'But this is very important to understand that.', 'start': 4622.387, 'duration': 2.022}, {'end': 4626.671, 'text': "And then after we do this, we'll get into pointers.", 'start': 4624.549, 'duration': 2.122}, {'end': 4633.016, 'text': 'Okay, so up here we say function change value, and it says f3.', 'start': 4627.171, 'duration': 5.845}, {'end': 4637.863, 'text': 'So it must be the F3, right? No, that has no bearing.', 'start': 4633.982, 'duration': 3.881}, {'end': 4643.964, 'text': 'This does not exist outside of the function, and it has nothing to do with that value right there.', 'start': 4638.463, 'duration': 5.501}], 'summary': 'Introduction to functions and pointers in programming.', 'duration': 30.8, 'max_score': 4613.164, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc4613164.jpg'}, {'end': 4827.724, 'src': 'embed', 'start': 4796.045, 'weight': 1, 'content': [{'end': 4804.031, 'text': 'and then you go and get the pointer by using that reference operator and f4 like that, except this is equals,', 'start': 4796.045, 'duration': 7.986}, {'end': 4812.797, 'text': "because this is the first time we're declaring this and let's go borrow this guy right here and throw it in right there and name this f4.", 'start': 4804.031, 'duration': 8.766}, {'end': 4821.262, 'text': 'okay, now, what we can do is we can say PL and F4 address like that.', 'start': 4812.797, 'duration': 8.465}, {'end': 4827.724, 'text': 'And we can go and get that address with F4 pointer, right like that.', 'start': 4822.142, 'duration': 5.582}], 'summary': 'Declaring a pointer and accessing its address using the reference operator.', 'duration': 31.679, 'max_score': 4796.045, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc4796045.jpg'}, {'end': 5439.574, 'src': 'embed', 'start': 5411.712, 'weight': 3, 'content': [{'end': 5415.856, 'text': "And it's actually better to just have this be at the end, but whatever, this is fine.", 'start': 5411.712, 'duration': 4.144}, {'end': 5421.543, 'text': "And now what I'm going to do is I'm going to read from the file and print out all the lines one by one.", 'start': 5416.26, 'duration': 5.283}, {'end': 5435.092, 'text': "Let's call this scan1 equal to, and everything is going to be buffered, new scanner, F, and we need buff.io up inside of here.", 'start': 5422.304, 'duration': 12.788}, {'end': 5439.574, 'text': 'So buff.io, and then we will go for scan1.file.', 'start': 5435.772, 'duration': 3.802}], 'summary': 'Reading and printing lines from file using buffered scanner', 'duration': 27.862, 'max_score': 5411.712, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc5411712.jpg'}, {'end': 5553.932, 'src': 'embed', 'start': 5530.293, 'weight': 4, 'content': [{'end': 5538.216, 'text': "Okay, so it's very important whenever we are appending that we are going to be able to have to set certain settings here.", 'start': 5530.293, 'duration': 7.923}, {'end': 5541.998, 'text': "depending, that are gonna determine exactly how we're gonna work with a file.", 'start': 5538.216, 'duration': 3.782}, {'end': 5546.826, 'text': "Now you're only going to have one all these options.", 'start': 5542.478, 'duration': 4.348}, {'end': 5550.509, 'text': 'so this one here is going to deal with open the file for read only.', 'start': 5546.826, 'duration': 3.683}, {'end': 5553.932, 'text': 'this is going to be right only, and this is going to be read or write.', 'start': 5550.509, 'duration': 3.423}], 'summary': 'Applying specific settings when appending, with options for read-only, write-only, and read/write.', 'duration': 23.639, 'max_score': 5530.293, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc5530293.jpg'}, {'end': 5601.975, 'src': 'embed', 'start': 5572.281, 'weight': 6, 'content': [{'end': 5577.605, 'text': "Okay, so what I'm going to do is I'm going to first check if my file exists.", 'start': 5572.281, 'duration': 5.324}, {'end': 5589.932, 'text': "So let's go like this, equal to os.stat, and does data text exist? We know it exists, but of course we're checking.", 'start': 5578.305, 'duration': 11.627}, {'end': 5601.975, 'text': "All right, then we're going to say errors, is, and this is another thing we can do in regards to doing some error handling directly right here.", 'start': 5590.373, 'duration': 11.602}], 'summary': "Checking if 'data.txt' file exists using os.stat", 'duration': 29.694, 'max_score': 5572.281, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc5572281.jpg'}, {'end': 5735.204, 'src': 'embed', 'start': 5700.574, 'weight': 2, 'content': [{'end': 5702.695, 'text': 'you can put those together or have them separate.', 'start': 5700.574, 'duration': 2.121}, {'end': 5707.117, 'text': "it doesn't matter, os.o.", 'start': 5702.695, 'duration': 4.422}, {'end': 5711.8, 'text': 'and this is gonna be read and write only in this circumstance,', 'start': 5707.117, 'duration': 4.683}, {'end': 5718.463, 'text': 'and then we can throw in our permissions in regards to who can access the file thereafter.', 'start': 5711.8, 'duration': 6.663}, {'end': 5725.912, 'text': 'What else can we do? Well, of course, we want to go in here and check for any type of errors that may have come upon us.', 'start': 5718.943, 'duration': 6.969}, {'end': 5735.204, 'text': "So we'll say if error not equal to nil, that's fine.", 'start': 5726.553, 'duration': 8.651}], 'summary': 'File can be read and written, with permissions for access. errors checked for.', 'duration': 34.63, 'max_score': 5700.574, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc5700574.jpg'}, {'end': 5878.791, 'src': 'embed', 'start': 5852.344, 'weight': 5, 'content': [{'end': 5861.106, 'text': "So what I'm going to do here and by command line I mean here in our terminal we're going to be able to pass values inside of it and it's going to do different things with those values.", 'start': 5852.344, 'duration': 8.762}, {'end': 5872.89, 'text': "So what I want to do is I'm going to need format, and I'm going to need OS, and I'm also going to need string conversion, I believe.", 'start': 5861.647, 'duration': 11.243}, {'end': 5874.99, 'text': "So here's those examples.", 'start': 5873.53, 'duration': 1.46}, {'end': 5878.791, 'text': "And again, it's going to have main inside of it.", 'start': 5875.51, 'duration': 3.281}], 'summary': 'Demonstrating command line functionality for format, os, and string conversion.', 'duration': 26.447, 'max_score': 5852.344, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc5852344.jpg'}], 'start': 4378.34, 'title': 'Go programming functions and file handling', 'summary': 'Discusses working with variadic functions, pass by value, and pointers in the go programming language, including handling arrays, slices, file input/output operations, and error handling. it demonstrates creating updated functions and working with files, showcasing the ability to handle unknown numbers of values, manipulate values, and handle errors in multiple ways.', 'chapters': [{'end': 4430.72, 'start': 4378.34, 'title': 'Working with veradic functions', 'summary': 'Discusses working with veradic functions, which are able to receive an unknown number of values, and demonstrates creating an updated version of getsum called getsum2 that can handle an array of values and return an int.', 'duration': 52.38, 'highlights': ['The chapter explains veradic functions as functions that can receive an unknown number of values.', 'It demonstrates creating an updated version of GetSum called GetSum2 that can handle an array of values and return an int.', 'The function GetSum2 is designed to receive an unknown number of values and return the sum as an int.']}, {'end': 4912.727, 'start': 4430.74, 'title': 'Functions, pass by value, and pointers', 'summary': 'Covers functions, pass by value, and pointers in the go programming language, demonstrating how to use arrays and pointers to make changes and pass values.', 'duration': 481.987, 'highlights': ['The chapter covers functions, pass by value, and pointers The transcript covers the usage of functions, pass by value, and pointers in the Go programming language.', 'Demonstrates how to use arrays and pointers to make changes and pass values The transcript demonstrates the usage of arrays and pointers to make changes and pass values in the Go programming language.', 'Pass by value is used when an array is passed into a function The transcript explains the concept of pass by value when an array is passed into a function and how it does not change the original array outside the function.']}, {'end': 5410.751, 'start': 4913.287, 'title': 'Functions, pointers, and fileio in go', 'summary': 'Covers passing values by reference, using pointers to manipulate values in an array, working with slices and variadic functions, calculating the average of values in a slice, and performing file input/output operations in go.', 'duration': 497.464, 'highlights': ['Passing values by reference and using pointers to manipulate array values, demonstrating the ability to affect values outside of a function by using pointers.', 'Working with slices and variadic functions, including creating a slice, calculating the average of values in the slice, and using formatted printing to display the average.', 'Performing file input/output operations, including creating, writing to, and reading from a file, as well as handling potential errors.']}, {'end': 6074.655, 'start': 5411.712, 'title': 'Creating and working with files', 'summary': 'Demonstrates how to open, read, write, and append to files in go, including error handling and working with command line arguments, emphasizing the ability to handle errors in multiple ways and demonstrating how to pass values to a program from the command line.', 'duration': 662.943, 'highlights': ['Demonstrates how to open, read, write, and append to files in Go The chapter covers opening, reading, writing, and appending to files in Go, showcasing the ability to perform various file operations.', "Emphasizes the ability to handle errors in multiple ways The chapter highlights different approaches to error handling, such as using 'if' statements and 'log.fatal' for error handling, showcasing the flexibility in managing errors.", 'Shows how to pass values to a program from the command line The chapter demonstrates how to handle command line arguments in Go, illustrating how to retrieve and process values passed to the program from the command line.']}], 'duration': 1696.315, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc4378340.jpg', 'highlights': ['The chapter covers opening, reading, writing, and appending to files in Go, showcasing the ability to perform various file operations.', 'The chapter demonstrates how to handle command line arguments in Go, illustrating how to retrieve and process values passed to the program from the command line.', "The chapter highlights different approaches to error handling, such as using 'if' statements and 'log.fatal' for error handling, showcasing the flexibility in managing errors.", 'The chapter explains veradic functions as functions that can receive an unknown number of values.', 'The function GetSum2 is designed to receive an unknown number of values and return the sum as an int.', 'Passing values by reference and using pointers to manipulate array values, demonstrating the ability to affect values outside of a function by using pointers.', 'The transcript covers the usage of functions, pass by value, and pointers in the Go programming language.', 'Demonstrates how to use arrays and pointers to make changes and pass values The transcript demonstrates the usage of arrays and pointers to make changes and pass values in the Go programming language.', 'Pass by value is used when an array is passed into a function The transcript explains the concept of pass by value when an array is passed into a function and how it does not change the original array outside the function.', 'Demonstrates how to open, read, write, and append to files in Go The chapter covers opening, reading, writing, and appending to files in Go, showcasing the ability to perform various file operations.']}, {'end': 7152.483, 'segs': [{'end': 6169.286, 'src': 'embed', 'start': 6140.91, 'weight': 0, 'content': [{'end': 6146.774, 'text': "And if you're wondering why all of a sudden I'm typing print line, well, the reason is that I didn't do the alias for print line.", 'start': 6140.91, 'duration': 5.864}, {'end': 6147.394, 'text': "That's the reason why.", 'start': 6146.814, 'duration': 0.58}, {'end': 6151.85, 'text': 'And we can come in here and run that.', 'start': 6148.667, 'duration': 3.183}, {'end': 6153.511, 'text': "Or no, we can't run it.", 'start': 6152.571, 'duration': 0.94}, {'end': 6154.252, 'text': "It's command line.", 'start': 6153.572, 'duration': 0.68}, {'end': 6157.035, 'text': 'OK, so just come over here.', 'start': 6155.133, 'duration': 1.902}, {'end': 6158.956, 'text': "I'm going to press up where it is.", 'start': 6157.055, 'duration': 1.901}, {'end': 6160.057, 'text': 'There it is.', 'start': 6159.557, 'duration': 0.5}, {'end': 6161.979, 'text': 'Go build like that.', 'start': 6160.117, 'duration': 1.862}, {'end': 6164.681, 'text': 'And then where we passed in those values.', 'start': 6162.299, 'duration': 2.382}, {'end': 6169.286, 'text': 'And you can see the maximum value passed in was 43.', 'start': 6165.322, 'duration': 3.964}], 'summary': 'Trouble with alias for print line; max value passed in: 43.', 'duration': 28.376, 'max_score': 6140.91, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc6140910.jpg'}, {'end': 6592.676, 'src': 'embed', 'start': 6565.12, 'weight': 3, 'content': [{'end': 6568.942, 'text': 'All right, now that we have that set up, we can go over into main and actually use it.', 'start': 6565.12, 'duration': 3.822}, {'end': 6579.749, 'text': "So we'll say package main, and then we need to import some stuff like this, and I'm not sure what we're going to get.", 'start': 6569.463, 'duration': 10.286}, {'end': 6582.09, 'text': "So I'm going to say function main.", 'start': 6580.149, 'duration': 1.941}, {'end': 6586.053, 'text': 'Anytime the package is main, that means it has to have a main function inside of it.', 'start': 6582.13, 'duration': 3.923}, {'end': 6590.115, 'text': "And I'm going to say format.println.", 'start': 6586.693, 'duration': 3.422}, {'end': 6592.676, 'text': "And I'll say hello.", 'start': 6590.875, 'duration': 1.801}], 'summary': "Setting up package main with a main function to print 'hello'.", 'duration': 27.556, 'max_score': 6565.12, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc6565120.jpg'}, {'end': 6878.831, 'src': 'embed', 'start': 6826.466, 'weight': 1, 'content': [{'end': 6828.348, 'text': 'Like I said, as long as equals works.', 'start': 6826.466, 'duration': 1.882}, {'end': 6833.011, 'text': "And then we'll go and actually create a map.", 'start': 6829.308, 'duration': 3.703}, {'end': 6834.792, 'text': "There's multiple ways of doing this.", 'start': 6833.371, 'duration': 1.421}, {'end': 6836.694, 'text': 'This is actually not the way you normally do it.', 'start': 6834.812, 'duration': 1.882}, {'end': 6838.675, 'text': "Next I'll show you the other way to do it.", 'start': 6836.954, 'duration': 1.721}, {'end': 6845.1, 'text': 'Like I said, I want this tutorial to be literally everything about Go you could more than likely see.', 'start': 6839.096, 'duration': 6.004}, {'end': 6847.222, 'text': "So that's one way to do it.", 'start': 6845.12, 'duration': 2.102}, {'end': 6851.345, 'text': 'You can also do it in one fell sweep.', 'start': 6847.782, 'duration': 3.563}, {'end': 6854.727, 'text': "So we're going to just go villains maybe.", 'start': 6851.925, 'duration': 2.802}, {'end': 6860.155, 'text': 'Villains And equal to make and map.', 'start': 6854.967, 'duration': 5.188}, {'end': 6863.118, 'text': 'The string is going to be the key.', 'start': 6860.696, 'duration': 2.422}, {'end': 6866.2, 'text': 'And string is also going to be the value.', 'start': 6863.658, 'duration': 2.542}, {'end': 6870.844, 'text': 'Now, we can come in here now and we can add keys and values.', 'start': 6866.921, 'duration': 3.923}, {'end': 6875.368, 'text': "Let's move this up here just to keep our screen real estate nice and tidy.", 'start': 6870.864, 'duration': 4.504}, {'end': 6878.831, 'text': 'Alright, so we can come in and go heroes like that.', 'start': 6875.828, 'duration': 3.003}], 'summary': 'Tutorial covers multiple ways to create a map in go, including adding keys and values.', 'duration': 52.365, 'max_score': 6826.466, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc6826466.jpg'}], 'start': 6074.675, 'title': 'Go programming basics', 'summary': 'Covers finding maximum value from command line arguments, setting up go packages and modules, managing libraries with go modules, working with packages and maps, and declaring and accessing map elements.', 'chapters': [{'end': 6258.276, 'start': 6074.675, 'title': 'Command line max value & go programming', 'summary': 'Demonstrates how to find the maximum value from command line arguments and provides tips for setting up packages and modules in go programming, with a key point being the need to configure gopls for visual studio code to avoid errors related to multiple modules.', 'duration': 183.601, 'highlights': ['The chapter demonstrates how to find the maximum value from command line arguments The code cycles through all the values passed into the command line and outputs the maximum value, with the example showing the maximum value passed in as 43.', 'The chapter provides tips for setting up packages and modules in Go programming It emphasizes the importance of keeping related code together using packages and highlights the need to configure GOPLS in Visual Studio Code to avoid errors related to multiple modules.']}, {'end': 6564.578, 'start': 6258.336, 'title': 'Working with go modules and packages', 'summary': 'Covers the creation of a new directory and module file, the process of working with go modules to manage libraries, the creation of new files and directories, and the creation of a package to convert int arrays into string arrays.', 'duration': 306.242, 'highlights': ["The chapter covers the creation of a new directory and module file. The speaker demonstrates creating a new directory called 'app' and a go.mod file for a module named 'example project.'", 'The process of working with Go modules to manage libraries is explained. The speaker explains that Go modules allow for the management of libraries and contain one project or library and a collection of Go packages.', "The creation of new files and directories is demonstrated. The speaker creates a new main.go file at the same level as the go.mod file and then proceeds to create a new directory and file inside the 'app' directory.", 'The creation of a package to convert int arrays into string arrays is explained. The speaker demonstrates creating a package with a function to convert int arrays into string arrays, emphasizing the reusability of code and the accessibility of uppercase functions outside of the package.']}, {'end': 7152.483, 'start': 6565.12, 'title': 'Working with go packages and maps', 'summary': 'Covers working with go packages and maps, including the organization of code, string conversion, and the basic layout of declaring a map, with a focus on key-value pairs, different data types, and adding, accessing, and cycling through map elements.', 'duration': 587.363, 'highlights': ['The chapter covers working with Go packages and maps, including the organization of code, string conversion, and the basic layout of declaring a map. The chapter involves setting up the main package, importing necessary packages, and using functions to organize code and perform string conversion.', 'The basic layout of declaring a map is discussed, with a focus on key-value pairs, different data types, and adding, accessing, and cycling through map elements. The basic layout of declaring a map is explained, emphasizing the usage of key-value pairs, different data types for keys and values, adding elements to the map, accessing elements via keys, and cycling through the map.']}], 'duration': 1077.808, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc6074675.jpg', 'highlights': ['The chapter covers working with Go packages and maps, including the organization of code, string conversion, and the basic layout of declaring a map.', 'The process of working with Go modules to manage libraries is explained. Go modules allow for the management of libraries and contain one project or library and a collection of Go packages.', 'The creation of a package to convert int arrays into string arrays is explained, emphasizing the reusability of code and the accessibility of uppercase functions outside of the package.', 'The chapter demonstrates how to find the maximum value from command line arguments. The code cycles through all the values passed into the command line and outputs the maximum value, with the example showing the maximum value passed in as 43.']}, {'end': 8687.083, 'segs': [{'end': 7285.944, 'src': 'embed', 'start': 7257.923, 'weight': 6, 'content': [{'end': 7260.505, 'text': 'So I function is going to work as long as.', 'start': 7257.923, 'duration': 2.582}, {'end': 7264.714, 'text': 'the generics that I receive are either integers or floats.', 'start': 7261.072, 'duration': 3.642}, {'end': 7272.798, 'text': 'Now you can use a couple different constraints, like for example, if you would use any, then that would literally match anything.', 'start': 7265.154, 'duration': 7.644}, {'end': 7273.958, 'text': 'You very rarely use it.', 'start': 7272.838, 'duration': 1.12}, {'end': 7278.681, 'text': 'You could also have a constraint be comparable.', 'start': 7274.338, 'duration': 4.343}, {'end': 7281.342, 'text': 'That is very often commonly used.', 'start': 7279.221, 'duration': 2.121}, {'end': 7285.944, 'text': "And what I mean by is if I say, well let's come in here and actually create a function.", 'start': 7281.422, 'duration': 4.522}], 'summary': "Function works with integer or float generics, can have constraints like 'any' or 'comparable'.", 'duration': 28.021, 'max_score': 7257.923, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc7257923.jpg'}, {'end': 7350.982, 'src': 'embed', 'start': 7325.759, 'weight': 2, 'content': [{'end': 7330.56, 'text': "And there's a whole bunch of other constraints that are actually built into Go.", 'start': 7325.759, 'duration': 4.801}, {'end': 7333.601, 'text': "I'm covering almost every single thing you can do with Go.", 'start': 7331.02, 'duration': 2.581}, {'end': 7335.642, 'text': "I'm not going to go through every single constraint.", 'start': 7333.761, 'duration': 1.881}, {'end': 7337.73, 'text': 'If you want that, this is where you go.', 'start': 7336.089, 'duration': 1.641}, {'end': 7341.834, 'text': 'Package, Go, Dev, Golang, and look specifically for constraints.', 'start': 7337.791, 'duration': 4.043}, {'end': 7344.677, 'text': 'Okay? And that will be on GitHub for free.', 'start': 7341.974, 'duration': 2.703}, {'end': 7348.32, 'text': "You can go and search for constraints to your heart's content.", 'start': 7344.697, 'duration': 3.623}, {'end': 7350.982, 'text': "Okay? So there's a whole bunch of customized ones.", 'start': 7348.8, 'duration': 2.182}], 'summary': 'The transcript covers various constraints in go. detailed information can be found on github for free.', 'duration': 25.223, 'max_score': 7325.759, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc7325759.jpg'}, {'end': 7672.319, 'src': 'embed', 'start': 7637.491, 'weight': 0, 'content': [{'end': 7639.912, 'text': 'and there we are.', 'start': 7637.491, 'duration': 2.421}, {'end': 7649.795, 'text': "and I'll just say C dot address is equal to address and I want to do anything else with it.", 'start': 7639.912, 'duration': 9.883}, {'end': 7652.027, 'text': "not really, I think that's, that's good, All right.", 'start': 7649.795, 'duration': 2.232}, {'end': 7660.833, 'text': "So we got those and let's come back here and let's go get customer info and pass in our customer.", 'start': 7652.067, 'duration': 8.766}, {'end': 7672.319, 'text': "and then I would like to also go new customer add and I'm gonna use a reference so that I'll be able to change my customer.", 'start': 7661.973, 'duration': 10.346}], 'summary': "Updating customer's c dot address and adding new customer info.", 'duration': 34.828, 'max_score': 7637.491, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc7637491.jpg'}, {'end': 7851.774, 'src': 'embed', 'start': 7816.071, 'weight': 8, 'content': [{'end': 7819.593, 'text': "Let's go and create some functions associated with this.", 'start': 7816.071, 'duration': 3.522}, {'end': 7823.757, 'text': 'So this is going to be our rectangle.', 'start': 7820.134, 'duration': 3.623}, {'end': 7827.18, 'text': "Don't want this rectangle.", 'start': 7825.178, 'duration': 2.002}, {'end': 7830.722, 'text': 'Rectangle So rectangle.', 'start': 7827.7, 'duration': 3.022}, {'end': 7836.207, 'text': 'And this is specifically assigned to this struct.', 'start': 7831.563, 'duration': 4.644}, {'end': 7837.748, 'text': "It doesn't just work with the struct.", 'start': 7836.287, 'duration': 1.461}, {'end': 7840.951, 'text': 'It is a function that is part of the struct.', 'start': 7838.229, 'duration': 2.722}, {'end': 7843.031, 'text': "So let's go like that.", 'start': 7841.65, 'duration': 1.381}, {'end': 7846.112, 'text': 'And it is called area.', 'start': 7844.851, 'duration': 1.261}, {'end': 7851.774, 'text': 'And it is going to receive or output or return a float.', 'start': 7846.792, 'duration': 4.982}], 'summary': 'Creating a rectangle function within a struct to output a float', 'duration': 35.703, 'max_score': 7816.071, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc7816071.jpg'}, {'end': 8094.166, 'src': 'embed', 'start': 8065.322, 'weight': 3, 'content': [{'end': 8070.385, 'text': 'And then finally B dot contact dot last name.', 'start': 8065.322, 'duration': 5.063}, {'end': 8071.205, 'text': 'All right.', 'start': 8070.945, 'duration': 0.26}, {'end': 8073.746, 'text': "And that's going to do all of that for us.", 'start': 8071.585, 'duration': 2.161}, {'end': 8075.867, 'text': 'And then we can come in to main.', 'start': 8074.246, 'duration': 1.621}, {'end': 8083.082, 'text': "And let's go and create a new contact and a new business and then call this guy on it to print it all out.", 'start': 8076.859, 'duration': 6.223}, {'end': 8089.724, 'text': "So let's just go contact one like this and contact like that.", 'start': 8083.562, 'duration': 6.162}, {'end': 8092.245, 'text': "And then we're just gonna list James.", 'start': 8089.984, 'duration': 2.261}, {'end': 8094.166, 'text': "Oh, let's give him an uppercase name.", 'start': 8092.425, 'duration': 1.741}], 'summary': "Creating new contact and business, calling to print out. listing 'james' with uppercase name.", 'duration': 28.844, 'max_score': 8065.322, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc8065322.jpg'}, {'end': 8524.977, 'src': 'embed', 'start': 8499.753, 'weight': 1, 'content': [{'end': 8510.383, 'text': "Okay, so let's run that and you can see. hey, you know, we were able to do our comparisons and also we were able to go and get the right calculations.", 'start': 8499.753, 'duration': 10.63}, {'end': 8512.385, 'text': "But there's a better way.", 'start': 8510.723, 'duration': 1.662}, {'end': 8522.915, 'text': 'Alright, so what we can also do here is we can use what is called an associate method with these two types, and this is the way you want to do it.', 'start': 8512.785, 'duration': 10.13}, {'end': 8524.977, 'text': "Alright, you don't want to do it this way, you want to do it this way.", 'start': 8523.215, 'duration': 1.762}], 'summary': 'Using associate method for better comparisons and calculations.', 'duration': 25.224, 'max_score': 8499.753, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc8499753.jpg'}], 'start': 7153.024, 'title': "Go's advanced features", 'summary': 'Covers advanced features of go, including generics for specifying data types and constraints, working with structs, composition, defined types, and type conversion methods for precise results. it demonstrates creating functions for multiple data types, implementing structs for storing different data types, and working with composition over inheritance. the examples include creating measurement types for conversions and showcasing method association for precise results.', 'chapters': [{'end': 7344.677, 'start': 7153.024, 'title': 'Generics in go: specifying data types', 'summary': "Discusses the concept of generics in go, highlighting its use in specifying data types to be used at a later time for creating functions that can work with multiple different data types, including constraints for integers and floats, along with further constraints like 'comparable' and 'any'.", 'duration': 191.653, 'highlights': ['Generics in Go allow specifying data types for creating functions that can work with multiple different data types. Generics in Go allow specifying data types for creating functions that can work with multiple different data types.', 'Constraints for integers and floats are defined for generics, limiting the data types that can be used. Constraints for integers and floats are defined for generics, limiting the data types that can be used.', "Other constraints like 'comparable' and 'any' can also be used with generics. Other constraints like 'comparable' and 'any' can also be used with generics."]}, {'end': 7918.76, 'start': 7344.697, 'title': 'Generics, structs, and functions in go', 'summary': 'Covers the implementation of generics, demonstrating the ability to work with integers or floats and return the same data type, along with the usage of structs to store values with different data types, as well as the creation of functions associated with the struct, and the calculation of area for a rectangle.', 'duration': 574.063, 'highlights': ['The implementation of generics allows working with integers or floats and returning the same data type. The demonstration of working with integers or floats and returning the same data type showcases the versatility of generics in handling different data types.', 'The usage of structs to store values with different data types, such as a string and a float, illustrates the structured approach to data storage. The usage of structs to store values with different data types, like a string and a float, showcases the structured approach to data storage, allowing for multiple data types to be stored together.', 'The creation of functions associated with the struct, such as retrieving customer information and adding a new customer, demonstrates the practical application of functions in working with structs. The creation of functions associated with the struct, like retrieving customer information and adding a new customer, showcases the practical application of functions in working with structured data, providing a clear way to manipulate and retrieve data.', "The demonstration of calculating the area for a rectangle using a function associated with the struct highlights the practical usage of functions in performing calculations based on the struct's data. The demonstration of calculating the area for a rectangle using a function associated with the struct highlights the practical usage of functions in performing calculations based on the struct's data, showcasing the ability to manipulate and derive meaningful information from the stored data."]}, {'end': 8160.065, 'start': 7919.595, 'title': 'Go language: working with structs and composition', 'summary': "Discusses go's support for composition over inheritance, demonstrating the embedding of structs, defining types, associating functions with structs, and creating instances of contacts and businesses, with a code example showcasing the printing of business information.", 'duration': 240.47, 'highlights': ["Go supports composition by embedding a struct inside of another struct, enabling the creation of complex data structures. The chapter emphasizes Go's support for composition by illustrating the embedding of a contact struct inside a business struct, enabling the creation of a complex data structure for representing business information.", "Demonstrates the process of defining and associating functions with the business struct for accessing and printing business information. The chapter covers the process of defining and associating functions with the business struct, enabling the access and printing of business information such as the business name, contact person's name, and contact person's phone number.", 'Provides a code example showcasing the creation of instances of contacts and businesses, and the printing of business information. The transcript includes a code example demonstrating the creation of instances of contacts and businesses, followed by the printing of business information using the associated function with the business struct.', 'Discusses the concept of defining types, indicating that defined types will be covered subsequently. The chapter briefly discusses the concept of defining types and mentions that further coverage on defined types will be provided in the subsequent content.']}, {'end': 8429.419, 'start': 8160.515, 'title': 'Working with defined types', 'summary': 'Introduces defined types and demonstrates their use in creating different cooking measurement types for conversions, including the conversion of teaspoons and tablespoons into milliliters, and also showcases the use of arithmetic and comparison operators.', 'duration': 268.904, 'highlights': ['Using defined types to create different cooking measurement types and their conversion into milliliters, such as teaspoons and tablespoons, is demonstrated.', 'Demonstrating the use of arithmetic and comparison operators on the defined types.', 'The demonstration of converting teaspoons and tablespoons into milliliters using functions and the comparison of values using arithmetic operators.', 'The exploration of the bad and good ways of doing type conversions using defined types.']}, {'end': 8687.083, 'start': 8429.939, 'title': 'Go type conversion and method association', 'summary': 'Discusses the traditional and better ways of solving type conversion problems in go, showcasing the usage of print f and associate method for conversion, achieving precise results.', 'duration': 257.144, 'highlights': ['The chapter discusses the traditional and better ways of solving type conversion problems in Go The transcript explains the traditional and improved approaches for solving type conversion problems in Go, highlighting the importance of using the right methods.', 'Showcases the usage of print F and associate method for conversion The speaker demonstrates the use of print F and associate method for type conversion, emphasizing the precision and correctness achieved through this approach.', 'Achieving precise results The transcript emphasizes the importance of achieving precise results in type conversion, showcasing how the demonstrated methods lead to accurate and reliable outcomes.']}], 'duration': 1534.059, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc7153024.jpg', 'highlights': ['Generics in Go allow specifying data types for creating functions that can work with multiple different data types.', 'The demonstration of working with integers or floats and returning the same data type showcases the versatility of generics in handling different data types.', 'The usage of structs to store values with different data types, like a string and a float, showcases the structured approach to data storage, allowing for multiple data types to be stored together.', 'The creation of functions associated with the struct, like retrieving customer information and adding a new customer, showcases the practical application of functions in working with structured data, providing a clear way to manipulate and retrieve data.', 'Go supports composition by embedding a struct inside of another struct, enabling the creation of complex data structures.', "The chapter emphasizes Go's support for composition by illustrating the embedding of a contact struct inside a business struct, enabling the creation of a complex data structure for representing business information.", 'Using defined types to create different cooking measurement types and their conversion into milliliters, such as teaspoons and tablespoons, is demonstrated.', 'The chapter discusses the traditional and better ways of solving type conversion problems in Go The transcript explains the traditional and improved approaches for solving type conversion problems in Go, highlighting the importance of using the right methods.', 'The speaker demonstrates the use of print F and associate method for type conversion, emphasizing the precision and correctness achieved through this approach.']}, {'end': 9903.794, 'segs': [{'end': 9624.03, 'src': 'embed', 'start': 9591.572, 'weight': 0, 'content': [{'end': 9594.435, 'text': 'And then we will print this out.', 'start': 9591.572, 'duration': 2.863}, {'end': 9595.656, 'text': "Alright, so that's the first one.", 'start': 9594.535, 'duration': 1.121}, {'end': 9597.425, 'text': "And then we're going to create another function.", 'start': 9596.104, 'duration': 1.321}, {'end': 9601.347, 'text': "It's going to count to 15 or 10.", 'start': 9597.505, 'duration': 3.842}, {'end': 9602.487, 'text': "Let's have it count to 10.", 'start': 9601.347, 'duration': 1.14}, {'end': 9604.368, 'text': 'So function print to.', 'start': 9602.487, 'duration': 1.881}, {'end': 9606.67, 'text': "And we'll change this to 10.", 'start': 9604.589, 'duration': 2.081}, {'end': 9609.811, 'text': 'Change this to 10.', 'start': 9606.67, 'duration': 3.141}, {'end': 9612.793, 'text': 'And just change this to function 2.', 'start': 9609.811, 'duration': 2.982}, {'end': 9616.255, 'text': 'So that we can tell the difference between these different functions.', 'start': 9612.793, 'duration': 3.462}, {'end': 9616.995, 'text': 'All right.', 'start': 9616.755, 'duration': 0.24}, {'end': 9618.276, 'text': 'So then what we can do.', 'start': 9617.415, 'duration': 0.861}, {'end': 9624.03, 'text': 'is just come down inside of main and go go and print.', 'start': 9618.846, 'duration': 5.184}], 'summary': 'Creating two functions, one counting to 10 and another printing, for differentiation.', 'duration': 32.458, 'max_score': 9591.572, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc9591572.jpg'}], 'start': 8687.083, 'title': 'Encapsulation and concurrency in go', 'summary': 'Discusses implementing setter and getter functions to hide data, validating date inputs, using interfaces for encapsulation, and demonstrates concurrency with go routines and channels.', 'chapters': [{'end': 8901.108, 'start': 8687.083, 'title': 'Protecting data and interfaces', 'summary': 'Discusses the implementation of setter functions and getter functions in the mypackage.go directory to hide data, with specific examples of validating day, month, and year inputs for a date structure.', 'duration': 214.025, 'highlights': ['The chapter focuses on creating setter functions and getter functions in the mypackage.go directory to hide data, specifically for a date structure with day, month, and year fields.', 'The implementation includes setter functions such as set day, set month, and set year, which validate input values for day, month, and year, respectively, and return an error if the input is invalid.', 'Examples of input validation include checking if the day is less than 1 or greater than 31, and similarly for the month (less than 1 or greater than 12), with specific error messages for incorrect values.', 'The implementation aims to restrict the modification of date values through the setter functions, providing specific error messages and returning nil if the input values are valid.']}, {'end': 9210.342, 'start': 8902.569, 'title': 'Encapsulation and getter functions', 'summary': 'Explains encapsulation and the use of getter functions in go programming, emphasizing the importance of encapsulation and demonstrating the creation and usage of getter functions for date information in a module, with an example of setting and retrieving date values.', 'duration': 307.773, 'highlights': ['The chapter demonstrates the importance of encapsulation in Go programming, highlighting the use of uppercase and lowercase letters to control accessibility outside the package.', 'It explains the creation and usage of getter functions to access date information, including day, month, and year, emphasizing the role of getter functions in retrieving specific data.', 'An example showcases the setting and retrieval of date values using getter functions, illustrating the practical implementation of encapsulation and getter functions in Go programming.']}, {'end': 9511.169, 'start': 9210.422, 'title': 'Using interfaces for data encapsulation', 'summary': 'Explains the use of interfaces in golang to create contracts for implementing defined methods, allowing for encapsulation of data and demonstrating how to separate specific functions from the interface.', 'duration': 300.747, 'highlights': ['The chapter explains the use of interfaces in Golang to create contracts for implementing defined methods, allowing for encapsulation of data.', 'Demonstrates how to separate specific functions from the interface, showcasing how a cat type in Golang can have its own functions while still adhering to the defined interface methods.', 'Provides practical insights into calling methods defined in the interface for cats, showcasing the contract implementation and execution of different functions.']}, {'end': 9903.794, 'start': 9511.189, 'title': 'Concurrency in go programming', 'summary': "Explains how to use go routines for concurrency in go programming, demonstrating the use of 'go' keyword to execute multiple functions in new go routines, and the importance of using channels to allow go routines to communicate and share values in a controlled manner.", 'duration': 392.605, 'highlights': ["The chapter emphasizes the use of 'go' keyword to execute multiple functions in new Go routines, illustrating the concept of concurrency in Go programming.", 'The importance of using channels to allow Go routines to communicate with each other and share values in a controlled manner is highlighted.', "The chapter provides examples of using 'go' keyword to create multiple Go routines, demonstrating the concept of concurrency in Go programming.", 'The use of channels to ensure the order of execution and communication between Go routines is emphasized, showcasing the controlled sharing of values.', "The concept of using time to pause the main function for allowing other functions to execute is explained, highlighting the use of 'time.Sleep' to control the execution flow."]}], 'duration': 1216.711, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc8687083.jpg', 'highlights': ['The chapter explains the use of interfaces in Golang to create contracts for implementing defined methods, allowing for encapsulation of data.', "The chapter emphasizes the use of 'go' keyword to execute multiple functions in new Go routines, illustrating the concept of concurrency in Go programming.", 'The chapter focuses on creating setter functions and getter functions in the mypackage.go directory to hide data, specifically for a date structure with day, month, and year fields.', 'The chapter demonstrates the importance of encapsulation in Go programming, highlighting the use of uppercase and lowercase letters to control accessibility outside the package.']}, {'end': 10545.004, 'segs': [{'end': 9977.189, 'src': 'embed', 'start': 9948.948, 'weight': 3, 'content': [{'end': 9961.7, 'text': 'And then we say lock, sink dot, mutex, and this is this is stands for mutable mutual exclusion,', 'start': 9948.948, 'duration': 12.752}, {'end': 9971.389, 'text': 'and it just means that we are going to be able to only allow one customer to access this account at one time.', 'start': 9961.7, 'duration': 9.689}, {'end': 9977.189, 'text': 'so now we need to go and create some functions that can be used to work with our account.', 'start': 9971.389, 'duration': 5.8}], 'summary': 'Implementing mutex allows one customer to access account at a time.', 'duration': 28.241, 'max_score': 9948.948, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc9948948.jpg'}, {'end': 10097.211, 'src': 'embed', 'start': 10072.617, 'weight': 0, 'content': [{'end': 10079.199, 'text': "And then I'm going to say if the value is greater than the balance, well, that's a problem.", 'start': 10072.617, 'duration': 6.582}, {'end': 10082.92, 'text': "So they're trying to withdraw more money than they actually have in the account.", 'start': 10079.939, 'duration': 2.981}, {'end': 10086.105, 'text': "Well, I could do an error here, but I'm just not going to.", 'start': 10083.444, 'duration': 2.661}, {'end': 10087.386, 'text': "I'm going to just keep it simple.", 'start': 10086.125, 'duration': 1.261}, {'end': 10091.828, 'text': 'Okay, so not enough money in account.', 'start': 10087.846, 'duration': 3.982}, {'end': 10097.211, 'text': "So that's going to print out on the screen if they try to take more money than they actually have.", 'start': 10092.769, 'duration': 4.442}], 'summary': "If withdrawal amount exceeds balance, display 'not enough money in account'.", 'duration': 24.594, 'max_score': 10072.617, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc10072617.jpg'}, {'end': 10501.209, 'src': 'embed', 'start': 10472.386, 'weight': 2, 'content': [{'end': 10486.376, 'text': "now you come down here, go function some values, some values like this, and it's going to receive an x and it's going to receive a y, both integers.", 'start': 10472.386, 'duration': 13.99}, {'end': 10488.217, 'text': "it's going to return an integer.", 'start': 10486.376, 'duration': 1.841}, {'end': 10489.738, 'text': 'what does this look like right here?', 'start': 10488.217, 'duration': 1.521}, {'end': 10492.841, 'text': "okay, it's the same as this right here.", 'start': 10489.738, 'duration': 3.103}, {'end': 10496.143, 'text': "okay, that's the difference, or they're the same thing, all right.", 'start': 10492.841, 'duration': 3.302}, {'end': 10501.209, 'text': "And then it's going to go return x plus y.", 'start': 10496.445, 'duration': 4.764}], 'summary': 'A function to add two integers and return the result.', 'duration': 28.823, 'max_score': 10472.386, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc10472386.jpg'}], 'start': 9904.298, 'title': 'Concurrency and functions in go', 'summary': 'Explores implementing concurrency in a bank account simulation using go routines, with 500 runs and 12 customers attempting concurrent withdrawals. it also explains closures in functions, showcasing their ability to modify variables, pass functions, and change values outside the function, with examples of named and unnamed parameters.', 'chapters': [{'end': 10276.857, 'start': 9904.298, 'title': 'Concurrency and bank account simulation', 'summary': 'Explores the implementation of concurrency in a bank account simulation, demonstrating the use of go routines to access and modify account balances, with 500 runs yielding consistent results and 12 customers attempting to withdraw $10 concurrently.', 'duration': 372.559, 'highlights': ['Demonstrates the use of go routines to access and modify account balances, with 500 runs yielding consistent results. The code implements go routines to access and modify account balances, ensuring consistent results across 500 runs.', 'Shows 12 customers attempting to withdraw $10 concurrently from the account. The simulation involves 12 customers attempting to withdraw $10 concurrently from the bank account using go routines.', 'Implements a mutex to allow only one customer to access the account at a time. A mutex is implemented to ensure that only one customer can access the account at a time, preventing overdrawn transactions.']}, {'end': 10545.004, 'start': 10277.277, 'title': 'Closures in functions', 'summary': 'Explains how closures work in functions, demonstrating the ability to create a closure for summing values, modify variables outside the function using closures, and pass a function to a function, showcasing an example of using a function to return an integer by passing integers as parameters. the chapter also highlights how closures can change values outside of the function and demonstrates the usage of named and unnamed parameters.', 'duration': 267.727, 'highlights': ['The chapter demonstrates the creation of a closure for summing values, where the code successfully executes a closure to calculate the sum of 5 and 4, resulting in 9.', "It explains the concept of closures being able to change values outside of the function, exemplifying how a closure can modify a variable 'sample1' outside the function, showcasing the ability of closures to alter variables beyond their scope.", 'The chapter illustrates the functionality of passing a function to a function, presenting an example of using a function to return an integer by passing integers as parameters and successfully obtaining a sum of 13 by passing 5 and 8 as parameters.']}], 'duration': 640.706, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc9904298.jpg', 'highlights': ['Implements a mutex to allow only one customer to access the account at a time.', 'Demonstrates the use of go routines to access and modify account balances, with 500 runs yielding consistent results.', 'Shows 12 customers attempting to withdraw $10 concurrently from the account.', 'The chapter demonstrates the creation of a closure for summing values, where the code successfully executes a closure to calculate the sum of 5 and 4, resulting in 9.', "It explains the concept of closures being able to change values outside of the function, exemplifying how a closure can modify a variable 'sample1' outside the function.", 'The chapter illustrates the functionality of passing a function to a function, presenting an example of using a function to return an integer by passing integers as parameters and successfully obtaining a sum of 13 by passing 5 and 8 as parameters.']}, {'end': 13754.21, 'segs': [{'end': 11141.847, 'src': 'embed', 'start': 11112.112, 'weight': 2, 'content': [{'end': 11117.495, 'text': "And then it's going to be sub match index.", 'start': 11112.112, 'duration': 5.383}, {'end': 11122.118, 'text': "like that and then we'll pass in our up.", 'start': 11118.857, 'duration': 3.261}, {'end': 11128.061, 'text': "there is our string right there and I'll leave this as negative one as well.", 'start': 11122.118, 'duration': 5.943}, {'end': 11133.503, 'text': "and let's say I want to replace all matches with the word dog for our final example.", 'start': 11128.061, 'duration': 5.442}, {'end': 11134.324, 'text': 'so throw that there.', 'start': 11133.503, 'duration': 0.821}, {'end': 11138.585, 'text': "I'm going to get rid of this all together and like that.", 'start': 11134.324, 'duration': 4.261}, {'end': 11141.847, 'text': "and then I'm going to say replace whoops and it's on output.", 'start': 11138.585, 'duration': 3.262}], 'summary': "Demonstrating string replacement with sub match index and 'replace' function.", 'duration': 29.735, 'max_score': 11112.112, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc11112112.jpg'}, {'end': 11291.627, 'src': 'embed', 'start': 11267.5, 'weight': 3, 'content': [{'end': 11277.115, 'text': "So bounce inside of there and I'm going to call this app2 for simplicity reasons, and then I am going to over here, going to change,", 'start': 11267.5, 'duration': 9.615}, {'end': 11284.341, 'text': "change directory to, let's go back and then we'll just say change directory to app2, like that.", 'start': 11277.115, 'duration': 7.226}, {'end': 11286.003, 'text': "All right, so we're in app2.", 'start': 11284.361, 'duration': 1.642}, {'end': 11291.627, 'text': "What I want to do now is inside of app2, I'm going to go and create a file.", 'start': 11286.783, 'duration': 4.844}], 'summary': 'Creating a file inside app2 directory.', 'duration': 24.127, 'max_score': 11267.5, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc11267500.jpg'}, {'end': 11462.509, 'src': 'embed', 'start': 11432.128, 'weight': 1, 'content': [{'end': 11438.129, 'text': "And here what I'm going to do is I'm going to use a raw string here so that I don't need to double my back slashes.", 'start': 11432.128, 'duration': 6.001}, {'end': 11439.73, 'text': 'This is a regular expression.', 'start': 11438.569, 'duration': 1.161}, {'end': 11442.19, 'text': "So here's another example of how to do regular expression.", 'start': 11439.81, 'duration': 2.38}, {'end': 11447.452, 'text': "And I'll sort of sort of step you through exactly what's going on with this regular expression.", 'start': 11442.61, 'duration': 4.842}, {'end': 11453.673, 'text': 'So regular expression dot compile and then.', 'start': 11448.012, 'duration': 5.661}, {'end': 11462.509, 'text': "I'm going to put inside here whoops, I want this to be a raw string. so for raw strings in Go, you do a back tick, and here is the regular expression.", 'start': 11454.383, 'duration': 8.126}], 'summary': 'Using raw strings for regular expressions in go.', 'duration': 30.381, 'max_score': 11432.128, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc11432128.jpg'}, {'end': 12070.065, 'src': 'embed', 'start': 12039.144, 'weight': 4, 'content': [{'end': 12050.631, 'text': "Then let's go and we're going to need to perform some type conversion to bytes to be able to use this string message that is passed inside here.", 'start': 12039.144, 'duration': 11.487}, {'end': 12058.996, 'text': "So we'll say writer.write and this is going to be a byte array.", 'start': 12051.331, 'duration': 7.665}, {'end': 12060.837, 'text': "That's what we want to convert to.", 'start': 12059.016, 'duration': 1.821}, {'end': 12063.119, 'text': "So this is just casting like we've done.", 'start': 12060.957, 'duration': 2.162}, {'end': 12069.144, 'text': 'And we can just go and call our error check and pass our errors inside of here to handle that.', 'start': 12064.219, 'duration': 4.925}, {'end': 12070.065, 'text': 'All right.', 'start': 12069.744, 'duration': 0.321}], 'summary': 'Performing type conversion to bytes for string message, and handling errors.', 'duration': 30.921, 'max_score': 12039.144, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc12039144.jpg'}, {'end': 12909.501, 'src': 'embed', 'start': 12878.414, 'weight': 0, 'content': [{'end': 12881.415, 'text': "And we'll do fprint line so everything is on a separate line.", 'start': 12878.414, 'duration': 3.001}, {'end': 12882.135, 'text': 'That makes sense.', 'start': 12881.455, 'duration': 0.68}, {'end': 12885.096, 'text': 'And to do, come down here.', 'start': 12883.095, 'duration': 2.001}, {'end': 12888.887, 'text': "And again, we'll do another error check like that.", 'start': 12885.905, 'duration': 2.982}, {'end': 12892.309, 'text': "Then I'm going to close our file.", 'start': 12889.508, 'duration': 2.801}, {'end': 12896.052, 'text': "So I'll say file.close.", 'start': 12893.29, 'duration': 2.762}, {'end': 12898.634, 'text': 'Could use defer if you wish.', 'start': 12897.333, 'duration': 1.301}, {'end': 12902.156, 'text': 'Do another error check just in case something went wrong.', 'start': 12899.274, 'duration': 2.882}, {'end': 12909.501, 'text': 'And then, after we got that information from the form and we wrote it to the file and we closed the file.', 'start': 12902.837, 'duration': 6.664}], 'summary': 'Code includes error checks, file writing, and closing', 'duration': 31.087, 'max_score': 12878.414, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc12878414.jpg'}, {'end': 13752.689, 'src': 'heatmap', 'start': 13617.377, 'weight': 1, 'content': [{'end': 13629.125, 'text': "Then over in the terminal part, you're going to want to change your directory to whatever directory you have your file stored inside of.", 'start': 13617.377, 'duration': 11.748}, {'end': 13635.07, 'text': "And then to run your application, you're just going to type go run and whatever the name of your go file is.", 'start': 13629.145, 'duration': 5.925}, {'end': 13636.746, 'text': 'and you should see hello go.', 'start': 13635.506, 'duration': 1.24}, {'end': 13639.527, 'text': 'Another thing you should do is update everything.', 'start': 13636.766, 'duration': 2.761}, {'end': 13644.468, 'text': "So you're going to want to come up here and this is going to be in your command palette.", 'start': 13639.967, 'duration': 4.501}, {'end': 13652.45, 'text': "So you're going to go view and command palette like that and type in go and start typing in updates.", 'start': 13645.128, 'duration': 7.322}, {'end': 13661.091, 'text': 'And this is going to pop up and you want to click on this guy and then you want to select every single one of the things that pop up down the side here.', 'start': 13652.77, 'duration': 8.321}, {'end': 13662.732, 'text': 'So you just put check marks on all of them.', 'start': 13661.272, 'duration': 1.46}, {'end': 13663.312, 'text': 'Click on OK.', 'start': 13662.832, 'duration': 0.48}, {'end': 13667.147, 'text': 'And then a whole bunch more stuff is going to install for you.', 'start': 13664.224, 'duration': 2.923}, {'end': 13673.254, 'text': "And then, on top of that, if you want to run everything in the terminal, you're just going to go to your extensions again.", 'start': 13667.908, 'duration': 5.346}, {'end': 13676.698, 'text': "type in Runner and you're going to see Code Runner pop up inside of here.", 'start': 13673.254, 'duration': 3.444}, {'end': 13678.56, 'text': "And you're going to click on Install, of course.", 'start': 13676.918, 'duration': 1.642}, {'end': 13680.722, 'text': 'And Code Runner is going to install.', 'start': 13679.501, 'duration': 1.221}, {'end': 13685.187, 'text': "Then you'll be able to run all of your code directly in the terminal on your screen.", 'start': 13680.742, 'duration': 4.445}, {'end': 13689.611, 'text': "but to finally get that to work, you're gonna wanna go into your settings.", 'start': 13686.089, 'duration': 3.522}, {'end': 13698.216, 'text': "it's under preferences and then you're going to type in at extformulahendry here.", 'start': 13689.611, 'duration': 8.605}, {'end': 13699.476, 'text': 'let me show you actually where it is.', 'start': 13698.216, 'duration': 1.26}, {'end': 13701.718, 'text': "it's actually here.", 'start': 13699.476, 'duration': 2.242}, {'end': 13702.578, 'text': 'let me show you where it is.', 'start': 13701.718, 'duration': 0.86}, {'end': 13712.562, 'text': "So you're gonna go to extensions, whoops, like that, and you're going to find your code runner, so just type in, Runner, run, open that up.", 'start': 13702.638, 'duration': 9.924}, {'end': 13716.545, 'text': "You're going to go into settings inside of here, extension settings.", 'start': 13712.822, 'duration': 3.723}, {'end': 13724.271, 'text': "And you're going to scroll down until you see run in terminal right here and make sure that this has a check mark on it.", 'start': 13717.646, 'duration': 6.625}, {'end': 13725.993, 'text': 'Exactly like this.', 'start': 13725.052, 'duration': 0.941}, {'end': 13732.738, 'text': "And then what you'll be able to do is take your main little Hello World program and directly run it in the terminal,", 'start': 13726.673, 'duration': 6.065}, {'end': 13734.88, 'text': 'just by clicking on this little play button up here.', 'start': 13732.738, 'duration': 2.142}, {'end': 13736.405, 'text': 'And there you go.', 'start': 13735.865, 'duration': 0.54}, {'end': 13738.086, 'text': 'That is the end of my video.', 'start': 13736.445, 'duration': 1.641}, {'end': 13742.887, 'text': 'If you want to recommend what my next language should be,', 'start': 13738.466, 'duration': 4.421}, {'end': 13748.428, 'text': "I'm going to be making absolutely huge videos like this for all the programming languages out there.", 'start': 13742.887, 'duration': 5.541}, {'end': 13752.689, 'text': 'So, like always, please leave your questions and comments down below.', 'start': 13748.488, 'duration': 4.201}], 'summary': "To run a go application, update and install code runner, then configure settings to run in the terminal. install updates and execute code directly in the terminal using the 'run' button.", 'duration': 135.312, 'max_score': 13617.377, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc13617377.jpg'}], 'start': 10545.004, 'title': 'Web app development with go', 'summary': 'Covers recursion, regular expressions, automated testing, and web application development using go, with practical demonstrations and examples, including creating http handler functions and a to-do list web app, demonstrating the versatility and importance of these concepts. the examples result in a factorial value of 24 and include handling errors, displaying to-dos count, adding new to-dos, and running go code in the terminal.', 'chapters': [{'end': 10712.534, 'start': 10545.004, 'title': 'Recursion and factorials', 'summary': 'Explains the concept of recursion and demonstrates how to calculate a factorial using recursion in a programming function, with an example resulting in a factorial value of 24.', 'duration': 167.53, 'highlights': ['The chapter explains the concept of recursion and demonstrates how to calculate a factorial using recursion in a programming function N/A', 'An example of calculating a factorial results in a value of 24 Factorial value: 24', 'Recursion occurs when a function calls itself, with a condition required to end repetitive calls N/A']}, {'end': 11186.837, 'start': 10712.534, 'title': 'Recursion and regular expressions', 'summary': 'Introduces recursion and regular expressions, with a focus on using regular expressions to identify specific patterns in strings and demonstrating various functions and methods for matching and manipulating text.', 'duration': 474.303, 'highlights': ['The chapter explains the concept of recursion and its application in a mathematical example, ultimately resulting in a final value of 24. Recursion is demonstrated using a mathematical example, resulting in a final value of 24.', "The chapter introduces regular expressions and provides examples of using regular expressions to identify specific patterns in strings, such as searching for the letters 'APE' and excluding the ones followed by a space. Introduction to regular expressions and examples of using them to identify specific patterns in strings, such as searching for the letters 'APE' and excluding the ones followed by a space.", "The chapter demonstrates the use of compiled regular expressions to search for specific patterns in strings and utilizes functions like 'find string', 'index', 'find all string', 'sub match index', and 'replace all string' to manipulate and retrieve matches from the text. Demonstration of using compiled regular expressions and various functions to manipulate and retrieve matches from the text."]}, {'end': 11966.719, 'start': 11187.267, 'title': 'Regex, automated testing, and web app', 'summary': 'Covers various functionalities such as regex string operations, automated testing to ensure code reliability, and developing a web application in go, emphasizing the versatility of regular expressions and the importance of automated testing in maintaining code integrity, alongside a practical demonstration of creating a web application using go.', 'duration': 779.452, 'highlights': ['The chapter emphasizes the versatility of regular expressions and the importance of automated testing in maintaining code integrity. Regular expressions are highlighted as being versatile in every programming language and automated testing is stressed for ensuring code reliability.', 'A practical demonstration of creating a web application using Go is provided, focusing on reading and writing from the file system, working with HTML templates, logging errors, and making server requests. The practical demonstration covers the usage of various libraries to work with file systems, HTML templates, logging errors, and making server requests in Go.', 'Various functionalities such as regex string operations and automated testing are covered, showcasing the capabilities of regular expressions and the significance of automated testing in code development. The chapter covers regex string operations and automated testing to showcase the capabilities of regular expressions and the significance of automated testing in code development.']}, {'end': 13110.557, 'start': 11966.719, 'title': 'Creating http handler functions', 'summary': 'Covers creating http handler functions to handle different parts of a website, such as error checking, creating a writer to write to the browser, displaying messages in different languages, interacting with to-dos, printing to the terminal, creating and using templates, and defining main function to tie directories to different handler functions.', 'duration': 1143.838, 'highlights': ['Creating HTTP handler functions to handle different parts of a website The transcript covers creating HTTP handler functions to handle different parts of a website, including error checking, creating a writer to write to the browser, displaying messages in different languages, interacting with to-dos, printing to the terminal, creating and using templates, and defining main function to tie directories to different handler functions.', 'Interacting with to-dos and displaying them on the screen The chapter explains how to interact with to-dos, including reading a text file, getting strings from the file, creating a to-do list and count, and displaying them on the screen.', 'Creating and using templates to display information on the screen It covers creating and using templates, including parsing HTML files, adding information to the template, and writing the template to the response writer to display on the screen.']}, {'end': 13754.21, 'start': 13110.897, 'title': 'Creating a to-do list web app with go', 'summary': 'Covers the creation of a to-do list web app using go, including handling potential errors, displaying to-dos count, adding new to-dos, cycling through and displaying all to-dos, setting up go and visual studio code, and running go code in the terminal.', 'duration': 643.313, 'highlights': ['Setting up Go and Visual Studio Code Describes the process of installing Go from go.dev, verifying the installation, setting up Visual Studio Code, and running a basic hello world program.', 'Creating a To-Do List Web App Explains the steps to create a To-Do list web app using Go, including handling potential errors, displaying to-dos count, adding new to-dos, and cycling through and displaying all to-dos.', 'Running Go code in the terminal Provides instructions on updating Go, installing Code Runner, and running Go code directly in the terminal using Visual Studio Code.']}], 'duration': 3209.206, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/YzLrWHZa-Kc/pics/YzLrWHZa-Kc10545004.jpg', 'highlights': ['Demonstration of using compiled regular expressions and various functions to manipulate and retrieve matches from the text.', 'The practical demonstration covers the usage of various libraries to work with file systems, HTML templates, logging errors, and making server requests in Go.', 'Creating HTTP handler functions to handle different parts of a website, including error checking, creating a writer to write to the browser, displaying messages in different languages, interacting with to-dos, printing to the terminal, creating and using templates, and defining main function to tie directories to different handler functions.', 'Explains the steps to create a To-Do list web app using Go, including handling potential errors, displaying to-dos count, adding new to-dos, and cycling through and displaying all to-dos.', 'An example of calculating a factorial results in a value of 24.']}], 'highlights': ['Covers a comprehensive golang tutorial with benefits including being a general purpose language and excelling at concurrency, discusses go variables, data types, string manipulation, math functions, arrays, functions, concurrency, advanced features, encapsulation, and web app development, and includes practical examples and demonstrations.', 'The tutorial video is the longest ever made and includes free code available on GitHub for users to access.', 'The chapter covers opening, reading, writing, and appending to files in Go, showcasing the ability to perform various file operations.', 'The chapter covers working with Go packages and maps, including the organization of code, string conversion, and the basic layout of declaring a map.', 'The chapter explains the use of interfaces in Golang to create contracts for implementing defined methods, allowing for encapsulation of data.', 'Demonstration of using compiled regular expressions and various functions to manipulate and retrieve matches from the text.', 'The chapter covers core data types including ints, float64s, bools, strings, and runes with default values.', 'The chapter covers string functions, runes, time handling, and math operations in Go. Covers a range of topics including string functions, runes, time handling, and math operations.', 'The chapter covers opening, reading, writing, and appending to files in Go, showcasing the ability to perform various file operations.', 'The chapter covers the basics of Go programming, including creating a directory, defining packages, importing packages, using aliases, defining functions, handling user inputs, and declaring variables.']}