package main
import (
"fmt"
"math"
"strings"
)
func main() {
//strings
fmt.Println("strings >>")
var nameOne string = "Sample String" // STRINGS ARE DOUBLE QUOTES
var nameTwo = "Another String"
var nameThree string
nameThree = "Something Else"
nameX := "Mr. X" // Can not use this way outside main function
fmt.Println(nameOne, nameTwo, nameThree, nameX)
// ints
fmt.Println("ints >>")
var ageOne int = 20
var ageTwo = 30
ageThree := 40
fmt.Println(ageOne, ageTwo, ageThree)
// bits & memory
fmt.Println("bits & memory >>")
var numOne int8 = 32
var numOneMinus int8 = -128
var numUnsigned uint8 = 255
fmt.Println(numOne, numOneMinus, numUnsigned)
// floats
fmt.Println("floats >>")
var scoreOne float32 = 25.200
var scoreTwo float64 = 25787987879878978978789798743242343243242343432423434234324234324324324234.200
scoreThree := 34234324.3423432
fmt.Println(scoreOne, scoreTwo, scoreThree)
// fmt package
fmt.Println("fmt package ('%v' or '%_' is just format specifier, '%q' is for quotes & '%T' is for displaying types, '%f' is for floats)>>\n")
fmt.Print("Hello \n")
fmt.Print(" World !")
var name string = "Mr. X"
var age int8 = 25
fmt.Print("\nMy name is ", name, "\nMy age is ", age, "\n")
fmt.Printf("Formatted String:\nMy name is %v,\nMy age is %v \n", name, age)
fmt.Printf("You have scored: %f \n", 22.22)
fmt.Printf("You have scored: %0.10f \n", 22.22)
fmt.Printf("You have scored: %0.1f \n", 22.22)
// Sprintf (Save formatted string so that we use it later on)
fmt.Println("Sprintf (Save formatted string so that we use it later on) >>")
var str string = fmt.Sprintf("SprintF :\nMy name is %v,\nMy age is %v \n", name, age)
fmt.Println(str)
// Arrays
fmt.Println("Arrays >>")
// Arrays in GO has fixed length
var arr [3]int = [3]int{100, 200, 300}
var handyArr = [4]int{10, 20, 30}
handyArr[3] = 40
fmt.Println(arr[0])
fmt.Println(arr, len(arr), handyArr, len(handyArr))
// Slices
fmt.Println("Slices: (Uses arrays under the hood) >>")
var strSlice = []string{"a", "b", "c", "d"}
strSlice = append(strSlice, "e")
fmt.Println(strSlice)
// Ranges
fmt.Println("Ranges (We can get Ranges both from Arrays & Slices) >>")
var sliceRangeFromSliceOne2Three []string = strSlice[1:3]
fmt.Println(sliceRangeFromSliceOne2Three)
var sliceRangeFromSliceUp2Three []string = strSlice[:3]
fmt.Println(sliceRangeFromSliceUp2Three)
var sliceRangeFromSliceAfterTwo []string = strSlice[1:]
fmt.Println(sliceRangeFromSliceAfterTwo)
// Loops
fmt.Println("\nLOOP: >>")
// For like While
var x int = 0
for x < 5 {
fmt.Println("Looping now From Like While: ", x)
x++
}
// For Tradetional
for x := 0; x < 5; x += 2 {
fmt.Println("Looping now From Tradetional Loop: ", x)
}
// For Each
for itemIndex, itemValue := range strSlice {
fmt.Println("Item Index is: ", itemIndex, "Item Value is: ", itemValue)
}
// WithOut Index
for _, itemValue := range strSlice {
fmt.Println("Only Item Value is: ", itemValue)
}
// WithOut Value
for index, _ := range strSlice {
fmt.Println("Only Item Index is: ", index)
}
/**
* Conditions
* if cond1 && cond2 || cond3 { }
*/
// Condition
if 2 < 3 {
fmt.Println("2 is less than 3")
}
// Functions
coverUp([]string{"a", "b", "c"}, sayHi)
fmt.Printf("Circle Area %f \n", circleArea((6.2)))
// var fn string var sn string
fn, sn := getInitials("Tony Stark")
fmt.Printf("fn %v, sn %v", fn, sn)
}
func sayHi(n string) {
fmt.Printf("Hello Hi Bye Bye %v \n", n)
}
func coverUp(n []string, f func(string)) {
for _, itemValue := range n {
f(itemValue)
}
}
func circleArea(r float64) float64 {
return math.Pi * r * r
}
// Multiple Return
func getInitials(n string) (string, string) {
var s string = strings.ToUpper(n)
var names []string = strings.Split(s, " ")
var initials []string
for _, v := range names {
initials = append(initials, v[:1])
}
if len(initials) > 1 {
return initials[0], initials[1]
}
return initials[0], "_"
}
Created
June 1, 2023 21:30
-
-
Save shahnCM/bf501ab8fe9be825a1b2ee7e69b5b75a to your computer and use it in GitHub Desktop.
Some GoLang programs to get you started
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment