Go语言中文网 为您找到相关结果 12

Golang-相对路径问题

先明确golang中几个参数的含义 之前理解错误了导致自己在写路径时出现了一些问题困惑了好久 特此记录 os.Args[0] 这个参数 并不是什么项目执行路径 获取的是命令行执行语句的第一句 以空格为分隔符 与项目执行路径无丝毫关系 --- 之前理解错了真惭愧啊 os.Getwd() 获取的是运行时你当前所在的路径 比如在/etc 目录下 运行/usr/main文件 最终通过Getwd获取到的值是 /etc golang中的相对路径就是根据这个执行路径来相对的 这也就解释了我 go run 和 idea 启动 还有 supervisor启动 却经常找不到资源的原因 因为所在的执行路径都不一定是相同的自然会这样 所以 一般我现在的做法是 如果是go run 直接到目录地下go run 如果是 ...阅读全文

博文 2015-06-17 20:02:36 u012807459

golang package整理(strings)

/*package strings*/ //HasPrefix 判断字符串 s 是否以 prefix 开头 strings.HasPrefix(s, prefix string) bool //HasSuffix 判断字符串 s 是否以 suffix 结尾 strings.HasSuffix(s, suffix string) bool //Contains 判断字符串 s 是否包含 substr strings.Contains(s, substr string) bool //****判断子字符串或字符在父字符串中出现的位置(索引)***// //Index 返回字符串 str 在字符串 s 中的索引(str 的第一个字符的索引),-1 表示字符串 s 不包含字符串 str string...阅读全文

博文 2015-08-01 09:00:02 ivandong_qifan

Go 获取当前可执行文件的所在目录

代码如下: import ( "errors" "os" "os/exec" "path/filepath" "strings" ) func GetCurrentPath() (string, error) { file, err := exec.LookPath(os.Args[0]) if err != nil { return "", err } path, err := filepath.Abs(file) if err != nil { return "", err } i := strings.LastIndex(path, "/") if i < 0 { i = strings.LastIndex(path, "\\") } if i < 0 { return "", err...阅读全文

博文 2017-02-13 04:00:26 风华神使

golang解析http multipart/form的三种方式

multipart/form-data 顾名思义可以上传多个form-data 并且用分隔符进行分割,多用于文件上传1. http multipart/form-data 请求样例POST /handle HTTP/1.1 Host: localhost:8080 Connection: keep-alive Content-Length: 182537 Cache-Control: max-age=0 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryWdDAe6hxfa4nl2IgAccept: text/html,application/xhtml+xml,application/xml;q=0.9,im...阅读全文

博文 2018-08-09 16:35:58 暮色伊人

Golang学习(11)——path filepath包

Golang学习 - path/filepath 包-----------------------filepath 中的函数会根据不同平台做不同的处理,比如路径分隔符、卷名等。 -----------------------路径分隔符转换:const ( Separator = os.PathSeparator // 路径分隔符(分隔路径元素) ListSeparator = os.PathListSeparator // 路径列表分隔符(分隔多个路径))下面两个函数主要用于将 Windows 路径分隔符转换为 Linux 路径分隔符,处理完后再转换回去,只在 Windows 中有用,在 Linux 中没必要:// 将 path 中平台相关的路径分隔符转换为 '/'ToSlash(path ...阅读全文

博文 2017-02-10 10:15:54 1160636144

Go圣经-学习笔记入门bufio.Scanner

上一篇 Go圣经-学习笔记入门bufio 下一篇 Go圣经-学习笔记入门bufio.Writer 由bufio.Reader引出的问题 由上篇文章《Go圣经-学习笔记入门bufio》,我们可以知道,bufio.Reader结构体中所有读取数据的方法,都包含了delim分隔符,这个用起来很不方便,所以Google对此在go1.1版本中加入了bufio.Scanner结构体,用于读取数据。 使用DEMO: func main(){ scanner:=bufio.NewScanner( strings.NewReader("ABCDEFG\nHIJKELM"), ) for scanner.Scan(){ fmt.Println(scanner.Text()) // scanner.Bytes()...阅读全文

博文 2017-10-22 00:31:10 cdh0805010

Go 字符串处理

函数: Join(a []string, sep string) string说明: 将一个字符串切片中的元素以字符 sep 进行分隔然后合并成一个字符串并返回实例: func main() { str := []string{"Hello", "World", "Good"} fmt.Println(strings.Join(str, " ")) } 程序输出 Hello World Good 函数: LastIndex(s, sep string) int说明: 判断字符 sep 在字符串 s 中最后一次出现的位置,如果成功返回 sep 位置的索引,如果字符 sep 不在字符串 s 中则返回 -1实例: func main() { str := "Hello World" fmt.Pri...阅读全文

博文 2017-02-10 14:44:53 yin32167

Go语言中字符串操作常用函数介绍

- 操作 ```go //"helloogo"中是否包含"hello" fmt.Println(strings.Contains("helloogo", "hello")) fmt.Println(strings.Contains("helloogo", "goe")) //Join组合 s := []string{"abc", "hello", "mike", "go"} buf := strings.Join(s, "_") fmt.Println("buf = ", buf) //Index 查找子串所在位置 fmt.Println(strings.Index("abcdhello", "hello")) fmt.Println(strings.Index("abcdhello", "...阅读全文

博文 2019-04-21 22:40:52 OctopusLian

golang生成指定范围内的随机数,拼接拆分字符串

package main import ( "fmt" "strings" "math/rand" ) func main() { str := "zhongGuo_ZuiMeiLiDe_DiFang_ShiNaLi?" s1 := strings.Fields(str)//将会利用 1 个或多个空白符号来作为动态长度的分隔符将字符串分割成若干小块 fmt.Println("-------s1------------",s1) for _,val:=range s1 { fmt.Println(val+"\n") } s2:=strings.Split(str,"_")//拆分字符串 fmt.Println("-------s2 len------------",len(s2)) for i...阅读全文

博文 2018-08-17 10:34:56 次序

字符串函数在golang中的使用

package main import ( "fmt" "strings" ) func main() { //判断父字符串是否包含子字符串,包含为真,否则为假 fmt.Println("-------------------------------") fmt.Println("contains Function:", strings.Contains("Austrilia", "lia")) fmt.Println("contains Function:", strings.Contains("Austrilia", "mia")) //子字符串在父字符串中出现的次数 fmt.Println("-------------------------------") fmt.Println("...阅读全文

博文 2019-03-05 15:36:20 PowerMichael

Go 字符串处理

直接使用“+”: 示例: a := "aa" b := "bb" a = a + b fmt.Println(a) 因为字符串类型在Go中是不可改变的,因此每次操作实际都要新分配字符串,所以在字符串比较多的时候效率不高。 使用strings.Join()函数 示例: var s []string for i := 0; i <= 9; i++ { s = append(s, strconv.Itoa(i)) } fmt.Println(strings.Join(s, "")) 这种方式需要花费构建slice的时间。 使用bytes.Buffer: 示例: package main import ( "bytes" "fmt" "strconv" ) func main() { var buf...阅读全文

博文 2019-06-11 09:02:38 guyan0319

【Go】类似csv的数据日志组件设计

文链接:https://blog.thinkeridea.com/... 我们业务每天需要记录大量的日志数据,且这些数据十分重要,它们是公司收入结算的主要依据,也是数据分析部门主要得数据源,针对这么重要的日志,且高频率的日志,我们需要一个高性能且安全的日志组件,能保证每行日志格式完整性,我们设计了一个类 csv 的日志拼接组件,它的代码在这里 datalog。 它是一个可以保证日志各列完整性且高效拼接字段的组件,支持任意列和行分隔符,而且还支持数组字段,可是实现一对多的日志需求,不用记录多个日志,也不用记录多行。它响应一个 []byte 数据,方便结合其它主键写入数据到日志文件或者网络中。 使用说明 API 列表 NewRecord(len int) Record 创建长度固定的日志记录 N...阅读全文

博文 2019-07-21 12:02:36 thinkeridea