Advertisement
zero50x

Golang

Jun 18th, 2017
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 5.04 KB | None | 0 0
  1. // ********** Определение длинны русских слов *****************
  2.  
  3. package main
  4.  
  5. import "fmt"
  6. import "unicode/utf8"
  7.  
  8. func main() {
  9.     fmt.Println(len("слово"))
  10.     fmt.Println(utf8.RuneCountInString("слово"))
  11. }
  12.  
  13. // ********** Работа с массивом *****************
  14.  
  15. package main
  16. import "fmt"
  17.  
  18. var letters = [7]string{"а", "б", "в", "г", "д", "е", "ё",}
  19.  
  20. func main() {
  21.     fmt.Println(letters)
  22.  
  23.     var a [2]string
  24.     a[0] = "Hello"
  25.     a[1] = "World"
  26.     fmt.Println(a[0], a[1])
  27.     fmt.Println(a)
  28.  
  29.     primes := [6]int{2, 3, 5, 7, 11, 13}
  30.     fmt.Println(primes)
  31.    
  32.     for i := 0; i < len(letters); i++ {
  33.         fmt.Println(letters[i])
  34.     }
  35. }
  36.  
  37. func echo() {
  38.     for i := 0; i <= len(letters); i++ {
  39.         fmt.Println(letters[i])
  40.     }
  41. }
  42.  
  43. // ********** Работа с картой (ассоциативный массив) *****************
  44.  
  45. package main
  46. import "fmt"
  47.  
  48. func main() {
  49.     // Создаём карту (ассоциативный массив)
  50.     x := make(map[string]int)
  51.     x["key"] = 10
  52.     x["man"] = 9
  53.     x["woman"] = 8
  54.     x["child"] = 11
  55.     x["ufo"] = 12
  56.    
  57.     // Удалим значение из карты
  58.     delete(x, "man")
  59.    
  60.     fmt.Println(x)
  61.    
  62.     // Проверим есть ли такой ключ в карте - если есть выводим если нет - выводим надпись
  63.     if name, ok := x["Un"]; ok {    
  64.         fmt.Println(name, ok)
  65.     } else {
  66.         fmt.Println("not isset")
  67.     }
  68.    
  69.     // Цикл вывода на экран каждого элемента ассоциативного массива по отдельности
  70.     // i - индекс v - значение Если вам не нужен индекс или значение, можете указать _
  71.     for i, v := range x {
  72.       fmt.Println(i, " - ", v)
  73.     }
  74.    
  75.     // Если ключ (индекс) мне не нужен
  76.     for _, v := range x {
  77.       fmt.Println(v)
  78.     }
  79. }
  80.  
  81. // ********** Найти минимальное значение в массиве *****************
  82. package main
  83. import "fmt"
  84.  
  85. func main() {
  86.     x := []int{48,96,86,68,57,82,63,70,37,34,83,27,19,97,9,17,}
  87.    
  88.     var z int = 1000
  89.    
  90.     for i := 0; i < len(x); i++ {
  91.         if x[i] < z {
  92.             z = x[i]
  93.         }
  94.     }
  95.     fmt.Println(z)
  96. }
  97.  
  98. // ********** Использование собственной функции поиска мин. значения в массиве (вынес в функцию) *****************
  99.  
  100. package main
  101. import "fmt"
  102.  
  103. func main() {
  104.     x := []int{48,96,86,68,57,82,63,70,37,34,83,27,19,97, 9,17,}
  105.     fmt.Println(minimum(x))
  106. }
  107.  
  108. func minimum(x []int) int {    
  109.     var z int = 1000
  110.    
  111.     for i := 0; i < len(x); i++ {
  112.         if x[i] < z {
  113.             z = x[i]
  114.         }
  115.     }
  116.     return z
  117. }
  118.  
  119. // ********** Функция plus внутри другой функции *****************
  120.  
  121. package main
  122. import "fmt"
  123.  
  124. func main() {
  125.     x := []int{48,96,86,68,57,82,63,70,37,}
  126.     fmt.Println(minimum(x))
  127. }
  128.  
  129. func plus(b int) int {
  130.     return b + 1
  131. }
  132.  
  133. func minimum(x []int) int {
  134.     var z int = 1000
  135.  
  136.     for i := 0; i < len(x); i++ {
  137.         x[i] = plus(x[i]) // вот в этой строке используйется другая функция plus
  138.         if x[i] < z {
  139.             z = x[i]
  140.         }
  141.     }
  142.     return z
  143. }
  144.  
  145. // ********** Вывод даты на экран если убрать "Сейчас: %s\n", из fmt.Printf то перестанет работать  *****************
  146.  
  147. package main
  148. import (
  149.     "fmt"
  150.     "time"
  151. )
  152.  
  153. func main() {
  154.     tnow := time.Now()
  155.     fmt.Printf("Сейчас: %s\n", tnow)
  156. }
  157.  
  158. // ********** Работающий генератор случайных чисел в диапазоне значений  *****************
  159. // Мой вопрос по этому поводу https://stackoverflow.com/questions/44659343/how-to-choose-a-random-number-from-the-range
  160.  
  161. package main
  162. import (
  163.     "fmt"
  164.     "math/rand"
  165.     "time"
  166. )
  167.  
  168. func main() {
  169.     // Seed should be set once, better spot is func init()
  170.     rand.Seed(time.Now().UTC().UnixNano())
  171.     fmt.Println(randInt(1, 1000))
  172. }
  173.  
  174. func randInt(min int, max int) int {
  175.     return min + rand.Intn(max-min)
  176. }
  177.  
  178.  
  179.  
  180. // ********** Факториал на golang  *****************
  181. package main
  182. import (
  183.     "fmt"
  184. )
  185.  
  186. func main() {
  187.     fmt.Println(factorial(3))
  188. }
  189.  
  190. func factorial(x uint) uint {
  191.     if x == 0 {
  192.         return 1
  193.     }
  194.     return x * factorial(x-1)
  195. }
  196.  
  197. // ********** Перехват PANIC  *****************
  198. package main
  199. import "fmt"
  200.  
  201. func main() {
  202.    
  203.     // recover присваивает переменной str текст ошибки в случае PANIC
  204.     defer func() {    
  205.         str := recover()
  206.         fmt.Println(str)
  207.     }()
  208.  
  209.     var x [5]float64
  210.     x[0] = 98
  211.     x[1] = 93
  212.     x[2] = 77
  213.  
  214.     var total float64 = 0
  215.     for i := 0; i <= 5; i++ {
  216.         total += x[i]
  217.     }
  218.     fmt.Println(total / 5)
  219. }
  220.  
  221. // ********** Создание среза и добавление в него элементов  *****************
  222.  
  223. package main
  224. import (
  225.     "fmt"
  226. )
  227.  
  228. func main() {
  229.     var x []int
  230.    
  231.     for i := 0; i < 5; i++ {
  232.         x = append(x, i)
  233.     }
  234.     fmt.Println(x)
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement