Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.79 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "strings"
  6. )
  7.  
  8. var cmds = make(map[string]func(string))
  9.  
  10. func main() {
  11.     // заполняем команды
  12.  
  13.     cmds["print"] = func(s string) {
  14.         fmt.Println(s)
  15.     }
  16.     cmds["count"] = func(s string) {
  17.         fmt.Println(len(s))
  18.     }
  19.  
  20.     // ... ещё очень много команд ...
  21.  
  22.     // выполняем команды
  23.     for {
  24.  
  25.         //
  26.         var arg string
  27.         fmt.Scanln(&arg)
  28.  
  29.         cmd := strings.Split(arg, "=")
  30.         if len(cmd) != 2 {
  31.             fmt.Println(arg, "не понимаю... ")
  32.             continue
  33.         }
  34.  
  35.         // для красноречия
  36.         name := cmd[0]
  37.         param := cmd[1]
  38.  
  39.         // ищем функцию
  40.         fn := cmds[name]
  41.         if fn == nil {
  42.             fmt.Println(name, "не знаю... ")
  43.             continue
  44.         }
  45.  
  46.         // исполняем команду
  47.         fn(param)
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement