为了账号安全,请及时绑定邮箱和手机立即绑定
  • package main
    
    import (
       "bufio"
       "flag"
       "fmt"
       "io"
       "os"
       "strings"
    )
    
    func fileExists(filename string) bool {
       _, err := os.Stat(filename)
       return err == nil || os.IsExist(err)
    }
    
    func copyFileAction(src, dst string, showProgress, force bool)  {
       if !force {
          if fileExists(dst) {
             fmt.Println("%s exists override ? y/n\n", dst)
             reader := bufio.NewReader(os.Stdin)
             data, _, _ := reader.ReadLine()
    
             if strings.TrimSpace(string(data)) != "y" {
                return
             }
          }
       }
       
       copyFile(src, dst)
    
       if showProgress {
          fmt.Println("'%s' -> '%s'\n", src, dst)
       }
       
    }
    
    func copyFile(src, dst string) (w int64, err error)  {
       srcFile, err := os.Open(src)
       if err != nil {
          fmt.Println(err.Error())
          return
       }
    
       defer srcFile.Close()
    
       dstFile, err := os.Create(dst)
       if err != nil {
          fmt.Println(err.Error())
          return
       }
    
       defer dstFile.Close()
    
       return io.Copy(dstFile, srcFile)
    }
    
    func main() {
       var showProgress, force bool
    
       // 定义命令行参数
       flag.BoolVar(&force, "f", false, "force copy when existing")
       flag.BoolVar(&showProgress, "v", false, "explain what is being done")
    
       flag.Parse()
    
       // 非法命令行数量检测
       if flag.NArg() < 2 {
          flag.Usage()
          return
       }
    
       copyFileAction(flag.Arg(0), flag.Arg(1), showProgress, force)
    }


    查看全部
  • /* go语言读取解析vs工程文件 */ package main import ( "bytes" "encoding/xml" "fmt" "io/ioutil" ) //获取xml格式的节点属性值 func getAttributeValue(attr []xml.Attr, name string) string { for _, a := range attr { if a.Name.Local == name { return a.Value } } return " " } func main() { //读取文件 content, err := ioutil.ReadFile("vs.csproj") //解析 decoder := xml.NewDecoder(bytes.NewBuffer(content)) var t xml.Token var inItemGroup bool for t, err = decoder.Token(); err == nil; t, err = decoder.Token() { switch token := t.(type) { case xml.StartElement: name := token.Name.Local //fmt.Println(name) //打印出xml的开始节点 if inItemGroup { if name == "ClCompile" { fmt.Println(name) fmt.Println(getAttributeValue(token.Attr, "Include")) } } else { if name == "ItemGroup" { inItemGroup = true } } case xml.EndElement: if inItemGroup { if token.Name.Local == "ItemGroup" { inItemGroup = false } } } } }
    查看全部
  • package main import ( "flag" "fmt" ) //第一种样式 func style() { //格式化定义 //flag.String("method","default","提示") 第一个参数是名字,第二个是默认值,第三个值是用法说明 methodPtr := flag.String("method", "default", "提示用法说明") valuePtr := flag.Int("value", -1, "value of sample") //解析 flag.Parse() fmt.Println(*methodPtr, *valuePtr) } //第二种样式 func style2() { var method string var value int //格式化 flag.StringVar(&method, "method", "default", "method of sample") flag.IntVar(&value, "value", -1, "value of sample") //解析 flag.Parse() fmt.Println(method, value) } func main() { //style() style2() }
    查看全部
  • package main import ( "encoding/xml" "fmt" ) //人物档案 结构体 type person struct { Name string Age int } func main() { //给结构体赋值 p := person{Name: "霜花似雪", Age: 18} //将结构体类型序列化出来,以xml格式展现 if data, err := xml.Marshal(p); err != nil { fmt.Println(err) return } else { fmt.Println(string(data)) } fmt.Println("\n") //将结构体类型序列化出来,以xml格式展现, //MarshalIndent(p,""," ")第二个参数是前缀,第三个参数是缩进 if data, err := xml.MarshalIndent(p, "", " "); err != nil { fmt.Println(err) return } else { fmt.Println(string(data)) } fmt.Println("\n") //将结构体类型序列化出来,以xml格式展现, //MarshalIndent(p,""," ")第二个参数是前缀,第三个参数是缩进 if data, err := xml.MarshalIndent(p, "#", " "); err != nil { fmt.Println(err) return } else { fmt.Println(string(data)) } }
    查看全部
  • package main import ( "fmt" "strconv" ) func main() { //go语言中整型与字符串相互转换API //输入整型数据输出字符串 fmt.Println(strconv.Itoa(10)) //输入字符串转化为整型 fmt.Println(strconv.Atoi("711")) //字符串解析 //解析为Bool类型 fmt.Println(strconv.ParseBool("false")) //0,f,F,false,FALSE,False fmt.Println(strconv.ParseBool("True")) //1,t,T,true,TRUE,True //解析为float类型,32是位数,是精度 fmt.Println(strconv.ParseFloat("3.14", 32)) //格式化 fmt.Println(strconv.FormatBool(true)) //FormatInt(123, 10),10表示是10进制,这个函数可以实现进制之间的转化 fmt.Println(strconv.FormatInt(123, 10)) //十进制 fmt.Println(strconv.FormatInt(123, 2)) //二进制 fmt.Println(strconv.FormatInt(20, 16)) //十六进制 }
    查看全部
  • package main import ( "fmt" "strings" ) func main() { s := "hello world" //判断字符串s是否在字符串hello中存在 fmt.Println(strings.Contains(s, "hello"), strings.Contains(s, "?")) //输出字符o在字符串中的索引 fmt.Println(strings.Index(s, "o")) ss := "1#2#3#456" //切割字符串 //采用Split函数根据#作为分隔符,分割字符串 splitedStr := strings.Split(ss, "#") fmt.Println(splitedStr) //合并字符串 fmt.Println(strings.Join(splitedStr, "#")) //判断字符串s中是否包含he开头的前缀 fmt.Println(strings.HasPrefix(s, "he")) ////判断字符串s中是否包含ld结尾的后缀 fmt.Println(strings.HasSuffix(s, "ld")) }
    查看全部
  • 字符串处理常见操作
    查看全部
  • 金龙咯嘛
    查看全部
  • 咯哦哦
    查看全部
  • 谈谈
    查看全部
  • 咯拒绝
    查看全部
  • 干嘛
    查看全部
  • 空空
    查看全部
  • 尽量少重复发明轮子,除非你在练习某项技能;
    查看全部
    0 采集 收起 来源:总结

    2016-01-20

  • 字符串是否包含前缀:HasPrefix(); 字符串是否包含后缀:HasSuffix();
    查看全部
首页上一页1234下一页尾页

举报

0/150
提交
取消
课程须知
本课程适合想使用Golang进行文本处理, 编写各类小工具的同学. 如果你对Golang语言还不是很熟悉, 请先学习Golang语言的基础课程
老师告诉你能学到什么?
1、文本字符串操作 2、 XML编码处理 3、命令行解析 4、从VS工程文件获取文件列表 5、模拟命令行拷贝文件

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!