自动更新服务器代码片段

前端之家收集整理的这篇文章主要介绍了自动更新服务器代码片段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. package main
  1.  
  1. import (
  1. "fmt"
  1. "io/IoUtil"
  1. "log"
  1. "path/filepath"
  1. "sort"
  1. "strconv"
  1. "strings"
  1. )
  1.  
  1. func main() {
  1. list := Namesort(parse("server"))
  1. sort.Sort(list)
  1. fmt.Println(list)
  1. }
  1.  
  1. func parse(dirpath string) []string {
  1. dirname := filepath.Base(dirpath)
  1. var l []string
  1. list, err := IoUtil.ReadDir(dirpath)
  1. if err != nil {
  1. log.Println(err)
  1. return l
  1. }
  1. for _, v := range list {
  1. if strings.Contains(v.Name(), dirname) {
  1. if toint(v.Name()) == -1 {
  1. continue
  1. }
  1. l = append(l, v.Name())
  1. }
  1. }
  1. return l
  1. }
  1.  
  1. type Namesort []string
  1.  
  1. func (self Namesort) Swap(i, j int) {
  1. self[i], self[j] = self[j], self[i]
  1. }
  1.  
  1. func (self Namesort) Len() int {
  1. return len(self)
  1. }
  1.  
  1. func (self Namesort) Less(i, j int) bool {
  1. ai := toint(self[i])
  1. aj := toint(self[j])
  1. if ai != -1 && aj != -1 {
  1. return ai < aj
  1. }
  1. return false
  1. }
  1.  
  1. func toint(str string) int {
  1. list := strings.Split(str, "_")
  1. if len(list) <= 1 {
  1. return -1
  1. }
  1. n := list[len(list)-1]
  1. num, err := strconv.Atoi(n)
  1. if err != nil {
  1. return -1
  1. }
  1. return num
  1. }

猜你在找的Go相关文章