Similar presentations:
Quest_06_07_Go_KZ
1.
os package & os.ArgsАРГУМЕНТТЕР / COMMAND-LINE ARGUMENTS
os — операциялық жүйемен жұмыс істеуге
арналған пакет.
os.Args — командалық жол аргументтерінің
[]string қиындысы (Slice).
English
os provides operating-system features.
os.Args stores command-line arguments as a []string
slice.
Input / Кіріс: go run main.go hi go
GO CODE
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(os.Args[1:])
}
Output / Шығыс: [hi go]
2.
Slices in GoСЛАЙСТАР / SLICES
GO CODE
Slice — элементтердің өзгермелі ұзындықтағы
тізбегі.
Индекстер 0-ден басталады.
len(a) — элементтер саны.
append(a, x) — элемент қосады.
a[1:] — 1-индекстен соңына дейін.
English: A slice is a flexible sequence. Indexing starts at
0; [1:] skips the first item.
Output / Шығыс: 3
[20 30]
[10 20 30 40]
a := []int{10, 20, 30}
fmt.Println(len(a)) //ұзындығы
fmt.Println(a[1:]) //1-ші индекстен
соңына дейін
a = append(a, 40)
fmt.Println(a)
//толық Slice
басып шығару
3.
os.Args[1:] + rangeПРАКТИКАЛЫҚ МЫСАЛ / PRACTICAL EXAMPLE
Қадамдар / Steps
GO CODE
1. os.Args[0] — бағдарлама атауы.
2. os.Args[1:] — тек пайдаланушы
аргументтері.
3. range — әр аргументті жеке қарайды.
package main
import (
"fmt"
"os"
)
func main() {
for _, word := range os.Args[1:] {
fmt.Println(word)
}
}
English: Skip the program name, then iterate over
the remaining arguments.
Input: hi go
→
Output: hi
go
4.
01 / flagsТАПСЫРМА / TASK
Әр аргументті жеке жолға шығару
Print each argument on a separate line
GO • Code example / Код үлгісі
package main
import (
"fmt"
"os"
)
func main() {
for _, a := range os.Args[1:] {
fmt.Println(a)
}
}
Кіріс / Input: Hello world Go
Шығыс / Output: Hello | world | Go
5.
02 / nbrconvertalphaТАПСЫРМА / TASK
Берілгені / Input
Бүтін n саны
GO • Code example / Код үлгісі
func NbrConvertAlpha(n int) string {
if n < 1 || n > 26 {
return ""
}
Не істеу керек / Task
Сәйкес кіші латын әрпін алу
Return the corresponding lowercase letter (1=a,
26=z)
Кіріс / Input: 3
Шығыс / Output: c
return string(rune('a' + n - 1))
}
6.
03 / printparamsТАПСЫРМА / TASK
Берілгені / Input
Жолдық аргументтер
String arguments
Не істеу керек / Task
Әр аргументті экранға шығару
GO • Code example / Код үлгісі
package main
import (
"os"
"fmt"
)
func main() {
for _, s := range os.Args[1:] {
fmt.Println(s)
Print each argument on a separate line
}
}
Кіріс / Input: hi go
Шығыс / Output:
hi
go
7.
04 / printprogramnameТАПСЫРМА / TASK
Берілгені / Input
os.Args[0] ішінде бағдарлама атауы
немесе жолы
GO • Code example / Код үлгісі
package main
import (
"fmt"
"os"
Не істеу керек / Task
Бағдарлама атауын немесе жолын
шығару
)
func main() {
fmt.Println(os.Args[0])
Print the program name or path
Шығыс / Output: <executable path>
}
8.
05 / revparamsТАПСЫРМА / TASK
GO • Code example / Код үлгісі
Берілгені / Input
package main
Аргументтер тізбегі
import (
"fmt"
A list of arguments
Не істеу керек / Task
Аргументтерді кері ретпен шығару
"os"
)
func main() {
for i := len(os.Args)-1; i >= 1; i-- {
fmt.Println(os.Args[i])
Print the arguments in reverse order
}
}
9.
06 / rotatevowelsGO • Code example / Код үлгісі
func RotateVowels(s string) string {
ТАПСЫРМА / TASK
Берілгені / Input
out := ""
for _, c := range s {
switch c {
Ағылшын тіліндегі мәтін
case 'a': c = 'e'
case 'e': c = 'i'
case 'i': c = 'o'
Не істеу керек / Task
case 'o': c = 'u'
Әр дауысты дыбысты айналымдағы
келесі дауыстыға ауыстыру
case 'u': c = 'a'
}
out += string(c)
Replace each lowercase vowel with the next vowel
(a→e→i→o→u→a)
}
return out
}
10.
07 / sortparamsТАПСЫРМА / TASK
GO • Code example / Код үлгісі
Берілгені / Input
package main
Жолдар жиыны
import (
"fmt"
A collection of strings
"os"
Не істеу керек / Task
Мәтіндерді алфавит ретімен шығару
Print the strings in alphabetical order
"sort"
)
func main() {
a := os.Args[1:]
sort.Strings(a)
for _, s := range a { fmt.Println(s) }
}
11.
08 / appendrangeТАПСЫРМА / TASK
Берілгені / Input
[]int және жаңа мән
An integer slice and a new value
Не істеу керек / Task
Мәнді тілімнің (slice) соңына қосу
Append the value to the end of the slice
Кіріс / Input: []int{1, 2}, 3
Шығыс / Output: [1 2 3]
GO • Code example / Код үлгісі
func AppendRange(a []int, n int) []int {
return append(a, n)
}
12.
09 / concatparamsТАПСЫРМА / TASK
Берілгені / Input
Жолдар жиыны
A collection of strings
Не істеу керек / Task
Жолдарды бір жолға біріктіру
Join all arguments without spaces
Кіріс / Input: Go lang
Шығыс / Output: Golang
GO • Code example / Код үлгісі
package main
import (
"fmt"
"os"
"strings"
)
func main() {
fmt.Println(strings.Join(os.Args[1:], ""))
}
13.
10 / makerangeТАПСЫРМА / TASK
Берілгені / Input
Бүтін start және end сандары
Two integers: start and end
Не істеу керек / Task
[start, end) аралығындағы тізбекті құру
Create the integer sequence [start, end)
Кіріс / Input: 1, 5
Шығыс / Output: [1 2 3 4]
GO • Code example / Код үлгісі
func MakeRange(start, end int) []int {
if end <= start { return []int{} }
a := make([]int, end-start)
for i := range a { a[i] = start+i }
return a
}