package main import ( "fmt" "sort" "strings" ) func arraysAndSorting() { Divider("arrays") // Arrays in GOLang start at 0!!! // Three ways to initialize arrays // you can either define the length in the [x]type part // or let it determine the amount based on the number of entries given var ages [3]int = [3]int{16, 17, 18} var moreAges = [3]int{21, 22, 23} names := [4]string{"mario", "luigi", "peach", "yoshi"} fmt.Println(ages, len(moreAges), names) // len() function gets the length or size of array // slices (use arrays under the hood) var scores = []int{100, 50, 60} scores[2] = 25 scores = append(scores, 85) fmt.Println(scores, len(scores)) // slice ranges rangeOne := names[1:3] fmt.Println(rangeOne) Divider("standard library") // strings package greeting := "hello there" fmt.Println(strings.Contains(greeting, "hello")) // strings.Contains returns a boolean value depending on if the passed value contains the second string fmt.Println(strings.Contains(greeting, "Hello")) // This function IS case-sensitive fmt.Println(strings.ReplaceAll(greeting, "hello", "hi")) // Replaces all instances of the passed string fmt.Println("Original string value is", greeting) // the original value is unchanged fmt.Println(strings.ToUpper(greeting)) // returns the passed string all uppercase fmt.Println(strings.Index(greeting, "ll")) // returns the first found position of the passed string fmt.Println(strings.Split(greeting, " ")) // splits first passed string into an array at each of the second passed variables instances // sort package otherAges := []int{45, 20, 35, 30, 75, 60, 50, 25} sort.Ints(otherAges) // sorts given values AND stores it in the same variable fmt.Println(otherAges) index := sort.SearchInts(otherAges, 30) // gets the index of the passed value from the array first passed secondIndex := sort.SearchInts(otherAges, 90) // if the value passed is not found in the array, it will return what position it WOULD be in thirdIndex := sort.SearchInts(otherAges, 55) fmt.Println(index) fmt.Println(secondIndex) fmt.Println(thirdIndex) otherNames := []string{"mario", "luigi", "yoshi", "peach", "bowser"} sort.Strings(otherNames) fmt.Println(otherNames) fmt.Println(sort.SearchStrings(otherNames, "bowser")) // gives the position of the passed string in the array if found fmt.Println(sort.SearchStrings(otherNames, "waluigi")) // otherwise will return where it WOULD be }