// Copyright © 2018 Inanc Gumus // Learn Go Programming Course // License: https://creativecommons.org/licenses/by-nc-sa/4.0/ // // For more tutorials : https://learngoprogramming.com // In-person training : https://www.linkedin.com/in/inancgumus/ // Follow me on twitter: https://twitter.com/inancgumus package main // --------------------------------------------------------- // EXERCISE: Slicing by arguments // // We've a []string, you will get arguments from the command-line, // then you will print only the elements that are requested. // // 1. Print the []string (it's in the code below) // // 2. Get the starting and stopping positions from the command-line // // 3. Print the []string slice by slicing it using the starting and stopping // positions // // 4. Handle the error cases (see the expected output below) // // 5. Add new elements to the []string slice literal. // Your program should work without changing the rest of the code. // // 6. Now, play with your program, get a deeper sense of how the slicing // works. // // // EXPECTED OUTPUT // // go run main.go // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // Provide only the [starting] and [stopping] positions // // // (error because: we expect only two arguments) // // go run main.go 1 2 4 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // Provide only the [starting] and [stopping] positions // // // (error because: starting index >= 0 && stopping pos <= len(slice) ) // // go run main.go -1 5 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // Wrong positions // // // (error because: starting <= stopping) // // go run main.go 3 2 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // Wrong positions // // // go run main.go 0 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // [Normandy Verrikan Nexus Warsaw] // // // go run main.go 1 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // [Verrikan Nexus Warsaw] // // // go run main.go 2 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // [Nexus Warsaw] // // // go run main.go 3 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // [Warsaw] // // // go run main.go 4 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // [] // // // go run main.go 0 3 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // [Normandy Verrikan Nexus] // // // go run main.go 1 3 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // [Verrikan Nexus] // // // go run main.go 1 2 // ["Normandy" "Verrikan" "Nexus" "Warsaw"] // // [Verrikan] // // --------------------------------------------------------- func main() { // uncomment the slice below // ships := []string{"Normandy", "Verrikan", "Nexus", "Warsaw"} }