{"id":18317661,"url":"https://github.com/datarohit/learning-go-lang","last_synced_at":"2025-04-09T13:48:53.541Z","repository":{"id":257344034,"uuid":"845507470","full_name":"DataRohit/Learning-Go-Lang","owner":"DataRohit","description":"This repository contains a collection of Go programs and projects that I created while learning the Go programming language. The programs are organized in a sequence that progressively covers various aspects of Go, from basic syntax to advanced topics such as concurrency and web development.","archived":false,"fork":false,"pushed_at":"2024-08-21T11:39:26.000Z","size":1280,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-15T07:47:16.548Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataRohit.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-21T11:39:11.000Z","updated_at":"2024-08-24T06:10:19.000Z","dependencies_parsed_at":"2024-09-16T08:15:48.206Z","dependency_job_id":null,"html_url":"https://github.com/DataRohit/Learning-Go-Lang","commit_stats":null,"previous_names":["datarohit/learning-go-lang"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataRohit%2FLearning-Go-Lang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataRohit%2FLearning-Go-Lang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataRohit%2FLearning-Go-Lang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataRohit%2FLearning-Go-Lang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataRohit","download_url":"https://codeload.github.com/DataRohit/Learning-Go-Lang/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248054218,"owners_count":21039951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T18:07:01.830Z","updated_at":"2025-04-09T13:48:53.519Z","avatar_url":"https://github.com/DataRohit.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GoLang Learning Repository\n\nThis repository contains a collection of Go programs and projects that I created while learning the Go programming language. The programs are organized in a sequence that progressively covers various aspects of Go, from basic syntax to advanced topics such as concurrency and web development.\n\n## Table of Contents\n\n1. [Introduction](#introduction)\n2. [Folder Structure](#folder-structure)\n3. [Individual Programs](#individual-programs)\n4. [Projects](#projects)\n   - [App](#app)\n   - [App2](#app2)\n   - [WebApp](#webapp)\n5. [How to Run](#how-to-run)\n6. [Credits](#credits)\n\n## Introduction\n\nThis repository serves as a personal reference and a showcase of what I have learned in Go. It includes simple programs demonstrating basic concepts, as well as more complex projects that involve file I/O, concurrency, and web development.\n\n## Folder Structure\n\n```\n.\n├── app\n│ ├── go.mod\n│ ├── main.go\n│ └── mypackage\n│ └── mypackage.go\n├── app2\n│ ├── go.mod\n│ ├── testemail.go\n│ └── testemail_test.go\n├── learning\n│ ├── 00-hello-go.go\n│ ├── 01-user-input.go\n│ ├── 02-variables.go\n│ ├── 03-data-types.go\n│ ├── 04-type-casting.go\n│ ├── 05-if-conditions.go\n│ ├── 06-strings.go\n│ ├── 07-runes.go\n│ ├── 08-time.go\n│ ├── 09-random-values.go\n│ ├── 10-math-functions.go\n│ ├── 11-formatted-print.go\n│ ├── 12-for-loop.go\n│ ├── 13-while-loop.go\n│ ├── 14-guessing-game.go\n│ ├── 15-range.go\n│ ├── 16-array.go\n│ ├── 17-slicing.go\n│ ├── 18-functions.go\n│ ├── 19-varadic-functions.go\n│ ├── 20-array-parameter.go\n│ ├── 21-pass-by-value.go\n│ ├── 22-defined-types-01.go\n│ ├── 22-pointers.go\n│ ├── 23-pass-by-reference.go\n│ ├── 24-file-io.go\n│ ├── 25-append-file.go\n│ ├── 26-command-line\n│ ├── 26-command-line.go\n│ ├── 27-maps.go\n│ ├── 28-generics.go\n│ ├── 29-structs.go\n│ ├── 30-structs-member-func.go\n│ ├── 31-struct-composition.go\n│ ├── 32-defined-types-01.go\n│ ├── 33-defined-types-02.go\n│ ├── 34-interfaces.go\n│ ├── 35-concurrency-goroutines.go\n│ ├── 36-goroutines-channels.go\n│ ├── 37-mutex-lock.go\n│ ├── 38-closures.go\n│ ├── 39-recursion.go\n│ ├── 40-regular-expression.go\n│ ├── data.txt\n│ └── Readme.md\n└── webapp\n├── new.html\n├── todos.txt\n├── view.html\n└── webapp.go\n```\n\n\n## Individual Programs\n\nEach file in the root directory (e.g., `00-hello-go.go`, `01-user-input.go`) is a standalone Go program that demonstrates a specific concept or feature of the Go language. These include:\n\n- Basic syntax and structure\n- Variables and data types\n- Control structures (if, loops)\n- Functions and methods\n- Arrays, slices, and maps\n- Pointers and memory management\n- Concurrency with Goroutines and Channels\n- Error handling and file I/O\n- Custom types and interfaces\n\n## Projects\n\n### App\n\nThe `app` folder contains a project that demonstrates the use of pointers, pass by reference, and handling date/time errors in Go. This project is designed to deepen the understanding of these concepts by applying them in a practical scenario.\n\n### App2\n\nThe `app2` folder contains a project focused on testing in Go. It includes examples of automated tests written using Go's testing package. This project showcases how to write and run tests to ensure code reliability and correctness.\n\n### WebApp\n\nThe `webapp` folder contains a small web application project that demonstrates how to build a simple To-Do list application in Go. It includes basic HTML templates and Go code to handle web requests, showcasing Go's capabilities for web development.\n\n## How to Run\n\nTo run any of the individual programs or projects, navigate to the respective directory and use the Go command:\n\n```sh\ngo run filename.go\n```\n\nFor the projects in the app, app2, and webapp folders, you may need to use go build to compile the application and then run the executable:\n\n```sh\ngo build main.go\n./main\n```\n\nTo run tests in the app2 folder:\n```sh\ngo test\n```\n\n## Credits\n\nThis learning journey was inspired by Derek Banas' excellent YouTube tutorials on Go. If you're interested in learning more about Go or other programming languages, I highly recommend checking out his content.\n\n- **YouTube Channel**: [Derek Banas](https://www.youtube.com/@derekbanas)\n- **Go Tutorial Video**: [Go Programming Tutorial](https://youtu.be/YzLrWHZa-Kc?si=vBWZiOU7qJfhnMmz)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatarohit%2Flearning-go-lang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatarohit%2Flearning-go-lang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatarohit%2Flearning-go-lang/lists"}