Go Tutorial - GeeksforGeeks (2025)

Skip to content

  • Tutorials
  • Courses
    • Newly Launched!
    • For Working Professionals
    • For Students
  • Data Types in Go
  • Go Keywords
  • Go Control Flow
  • Go Functions
  • GoLang Structures
  • GoLang Arrays
  • GoLang Strings
  • GoLang Pointers
  • GoLang Interface
  • GoLang Concurrency

Open In App

Next Article:Go Programming Language (Introduction)

Last Updated : 04 Feb, 2025

Comments

Improve

Suggest changes

Like Article

Like

Report

Go or you say Golang is a procedural and statically typed programming language having the syntax similar toCprogramming language. It was developed in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson at Google but launched in 2009 as an open-source programming language and mainly used in Google’s production systems. Golang is one of the most trending programming languages among developers. It provides a rich standard library, garbage collection, and dynamic-typing capability.

Overview

  • Introduction to Golang
  • Installing Golang on Windows
  • Installing Golang on MacOS
  • Hello World! in Golang
  • Golang vs C++
  • Golang vs Java
  • Golang vs Python

Fundamentals

  • Identifiers in Golang
  • Keywords in Golang
  • Data Types
  • Variables
  • Constants
  • Rune in Golang
  • Operators in Golang
  • Scope of Variables
  • Type Casting
  • var Keyword in Golang
  • Short Declaration Operator(:=)
  • var keyword vs short declaration operator

Control Statements

  • Decision Making Statements
  • Loops in Golang
  • Loop Control Statements
  • Switch Statement in Go
  • Deadlock and Default Case in Select Statement

Functions & Methods

  • What are the Functions?
  • Variadic Function
  • Anonymous Function
  • main and init function
  • Function Arguments
  • Function Returning Multiple Values
  • Named Return Values
  • Blank Identifier
  • Defer
  • Methods
  • Methods With Same Name

Structure

  • Structures
  • Structure Equality
  • Nested Structure
  • Anonymous Structure and Fields
  • Promoted Fields in Structure
  • Promoted Methods in Structure
  • Function as a Field in Structure

Arrays & Slices

  • Arrays in Golang
  • Copying an Array into Another Array in Golang
  • Passing an Array to a Function in Golang
  • Slices in Golang
  • Slice Composite Literal
  • Copying one Slice into another Slice
  • Passing a Slice to Function
  • Comparing two Slices in Golang
  • Checking the Equality of Slices in Golang
  • Sorting a Slice in Golang
  • Trimming a Slice in Golang
  • Splitting a Slice in Golang

String

  • Strings in Golang
  • Different ways to compare Strings
  • Different ways to concatenate two strings
  • Trimming a String in Golang
  • Splitting a String in Golang
  • Check if the given characters are present in String
  • Repeating a String for Specific Number of Times
  • Finding the index value of specified string
  • Counting the Number of Repeated Characters in String

Pointers

  • Pointers
  • Pointer to Pointer (Double Pointer)
  • Pointers to a Function
  • Returning Pointer from a Function
  • Pointer to an Array as Function Argument
  • Pointer to Struct
  • Comparing Pointers
  • Finding the Capacity of the Pointer
  • Finding the Length of the Pointer
Go Tutorial - GeeksforGeeks (3)

Interfaces

  • Interfaces
  • Multiple Interfaces
  • Embedding Interfaces
  • Polymorphism Using Interfaces

Concurrency

  • Goroutines – Concurrency
  • Select Statement
  • Multiple Goroutines
  • Goroutine vs Thread
  • Channel in Golang
  • Unidirectional Channel in Golang

Next Article

Go Programming Language (Introduction)

K

kartik

Improve

Article Tags :

  • Programming Language
  • Go Language
  • Golang

Similar Reads

    Go Tutorial Go or you say Golang is a procedural and statically typed programming language having the syntax similar to C programming language. It was developed in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson at Google but launched in 2009 as an open-source programming language and mainly used in Google 2 min read

    Overview

    Fundamentals

    Control Statements

    Functions & Methods

    Structure

    Arrays

    Slices

    Strings

    Pointers

top_of_element && top_of_screen < bottom_of_element) || (bottom_of_screen > articleRecommendedTop && top_of_screen < articleRecommendedBottom) || (top_of_screen > articleRecommendedBottom)) { if (!isfollowingApiCall) { isfollowingApiCall = true; setTimeout(function(){ if (loginData && loginData.isLoggedIn) { if (loginData.userName !== $('#followAuthor').val()) { is_following(); } else { $('.profileCard-profile-picture').css('background-color', '#E7E7E7'); } } else { $('.follow-btn').removeClass('hideIt'); } }, 3000); } } }); } $(".accordion-header").click(function() { var arrowIcon = $(this).find('.bottom-arrow-icon'); arrowIcon.toggleClass('rotate180'); });});window.isReportArticle = false;function report_article(){ if (!loginData || !loginData.isLoggedIn) { const loginModalButton = $('.login-modal-btn') if (loginModalButton.length) { loginModalButton.click(); } return;} if(!window.isReportArticle){ //to add loader $('.report-loader').addClass('spinner'); jQuery('#report_modal_content').load(gfgSiteUrl+'wp-content/themes/iconic-one/report-modal.php', { PRACTICE_API_URL: practiceAPIURL, PRACTICE_URL:practiceURL },function(responseTxt, statusTxt, xhr){ if(statusTxt == "error"){ alert("Error: " + xhr.status + ": " + xhr.statusText); } }); }else{ window.scrollTo({ top: 0, behavior: 'smooth' }); $("#report_modal_content").show(); }} function closeShareModal() { const shareOption = document.querySelector('[data-gfg-action="share-article"]'); shareOption.classList.remove("hover_share_menu"); let shareModal = document.querySelector(".hover__share-modal-container"); shareModal && shareModal.remove();}function openShareModal() { closeShareModal(); // Remove existing modal if any let shareModal = document.querySelector(".three_dot_dropdown_share"); shareModal.appendChild(Object.assign(document.createElement("div"), { className: "hover__share-modal-container" })); document.querySelector(".hover__share-modal-container").append( Object.assign(document.createElement('div'), { className: "share__modal" }), ); document.querySelector(".share__modal").append(Object.assign(document.createElement('h1'), { className: "share__modal-heading" }, { textContent: "Share to" })); const socialOptions = ["LinkedIn", "WhatsApp","Twitter", "Copy Link"]; socialOptions.forEach((socialOption) => { const socialContainer = Object.assign(document.createElement('div'), { className: "social__container" }); const icon = Object.assign(document.createElement("div"), { className: `share__icon share__${socialOption.split(" ").join("")}-icon` }); const socialText = Object.assign(document.createElement("span"), { className: "share__option-text" }, { textContent: `${socialOption}` }); const shareLink = (socialOption === "Copy Link") ? Object.assign(document.createElement('div'), { role: "button", className: "link-container CopyLink" }) : Object.assign(document.createElement('a'), { className: "link-container" }); if (socialOption === "LinkedIn") { shareLink.setAttribute('href', `https://www.linkedin.com/sharing/share-offsite/?url=${window.location.href}`); shareLink.setAttribute('target', '_blank'); } if (socialOption === "WhatsApp") { shareLink.setAttribute('href', `https://api.whatsapp.com/send?text=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } if (socialOption === "Twitter") { shareLink.setAttribute('href', `https://twitter.com/intent/tweet?url=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } shareLink.append(icon, socialText); socialContainer.append(shareLink); document.querySelector(".share__modal").appendChild(socialContainer); //adding copy url functionality if(socialOption === "Copy Link") { shareLink.addEventListener("click", function() { var tempInput = document.createElement("input"); tempInput.value = window.location.href; document.body.appendChild(tempInput); tempInput.select(); tempInput.setSelectionRange(0, 99999); // For mobile devices document.execCommand('copy'); document.body.removeChild(tempInput); this.querySelector(".share__option-text").textContent = "Copied" }) } }); // document.querySelector(".hover__share-modal-container").addEventListener("mouseover", () => document.querySelector('[data-gfg-action="share-article"]').classList.add("hover_share_menu"));}function toggleLikeElementVisibility(selector, show) { document.querySelector(`.${selector}`).style.display = show ? "block" : "none";}function closeKebabMenu(){ document.getElementById("myDropdown").classList.toggle("show");}

We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy

Go Tutorial - GeeksforGeeks (2025)

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Edwin Metz

Last Updated:

Views: 5579

Rating: 4.8 / 5 (78 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Edwin Metz

Birthday: 1997-04-16

Address: 51593 Leanne Light, Kuphalmouth, DE 50012-5183

Phone: +639107620957

Job: Corporate Banking Technician

Hobby: Reading, scrapbook, role-playing games, Fishing, Fishing, Scuba diving, Beekeeping

Introduction: My name is Edwin Metz, I am a fair, energetic, helpful, brave, outstanding, nice, helpful person who loves writing and wants to share my knowledge and understanding with you.