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

golang判断前缀后缀、包含关系

4.7.1 前缀和后缀 HasPrefix 判断字符串 s 是否以 prefix 开头: strings.HasPrefix(s, prefix string) bool HasSuffix 判断字符串 s 是否以 suffix 结尾: strings.HasSuffix(s, suffix string) bool package main import ( "fmt" "strings" ) func main() { var str string = "This is an example of a string" fmt.Printf("T/F? Does the string \"%s\" have prefix %s? ", str, "Th") fmt.Printf("%t\n...阅读全文

博文 2018-08-08 22:34:48 次序

关于json格式化输出json.MarshalIndent()的使用

最近发现用json.MarshalIndent()转出来的json打印出来比较好看 比如 ``` js,_ := json.Marshal(&person) jsIndent,_ := json.MarshalIndent(&person, "", "\t") fmt.Println("\njs:\n",string(js), "\n\njsIndent:\n",string(jsIndent) ``` 打印出来: ``` js: {"Time":1987,"Name":"liangyongxing","Age":12} jsIndent: { "Time": 1987, "Name": "liangyongxing", "Age": 12 }...阅读全文

golang strings.TrimLeft 和 strings.TrimPrefix的区别

首先看官方文档介绍 func TrimLeft(s string, cutset string) string{} TrimLeft返回字符串s的一部分,其中删除了cutset中包含的所有前导Unicode代码点。 func TrimPrefix(s, prefix string) string{} TrimPrefix返回不包含前缀字符串的s。如果s不以前缀开头,则s不变返回。 理解 TrimPrefix很好理解,就是把前缀字符串去掉,剩下的就是需要返回的 那么TrimLeft怎么理解呢,我来举个例子: words := "mongodb://off" prefix := "mongodb://" fmt.Println(strings.TrimLeft(words, prefix)) w...阅读全文

博文 2019-12-27 16:34:27 hewolf

GLC - 实现 glog 日志清理

项目地址 github.com/xuri/glc 简介 GLC (glog cleaner) 是 Go 语言编写的 glog 日志清理类库,glog 是由 Google 开发的一个应用级日志框架,提供了日志分级、文件切分等功能,但是暂未提供日志清理功能,配合 GLC 可以方便地实现日志清理功能,类库提供了自定义日志保留时间、日志文件名前缀匹配和清理扫描频率的支持。 安装 go get github.com/xuri/glc 使用方式 下面是一个简单的例子,每小时清理日志,仅保留 30 分钟内指定目录下以 glc 做前缀由 glog 产生的日志: glc.NewGLC(glc.InitOption{ Path: path, Prefix: `glc`, Interval: time.Durat...阅读全文

博文 2018-03-23 10:34:46 续日

GLC - glog 日志清理类库

![](https://raw.githubusercontent.com/xuri/glc/master/glc.png) #### 项目地址 [github.com/xuri/glc](https://github.com/xuri/glc) #### 简介 GLC (glog cleaner) 是 Go 语言编写的 glog 日志清理类库,[glog](https://github.com/golang/glog) 是由 Google 开发的一个应用级日志框架,提供了日志分级、文件切分等功能,但是暂未提供日志清理功能,配合 GLC 可以方便地实现日志清理功能,类库提供了自定义日志保留时间、日志文件名前缀匹配和清理扫描频率的支持。 #### 安装 ``...阅读全文

gitlab 引用私有仓库(下)

本来以为配置了上篇操作就可以高枕无忧了,没想到,在引用的项目中,出现路径找不到的情况 cannot find module providing package go-sdk/wxsdk/common/comFunc/utilhttp 看了一些引用的官方库,才发现作为私有库的项目中go.mod 和路径要改,以官方的google.golang.org/grpc 项目来看一下 go.mod文件 module google.golang.org/grpc require ( cloud.google.com/go v0.26.0 // indirect github.com/BurntSushi/toml v0.3.1 // indirect github.com/client9/misspell ...阅读全文

博文 2019-03-30 22:34:43 西瓜啊贝贝

fmt 的两个使用技巧

1. 通常 Printf 格式化字符串包含多个%参数时将会包含对应相同数量的额外操作数,但是%之后的[1]副词告诉 Printf 函数再次使用第一个操作数;[1] 可以扩展到更多。 2. %后的#副词告诉 Printf 在用%o、%x或%X输出时生成0、0x或0X前缀。 示例: ```go i := 123 fmt.Printf("%d %[1]x %#[1]x %#[1]X\n", i) ``` Output: `123 7b 0x7b 0X7B...阅读全文

Golang log日志

golang控制台输出log和两种将log输出到文件的方法 func Logs() { /* O_RDWR 读写模式打开文件 O_APPEND 写操作时将数据附加到文件尾部 O_CREATE 如果不存在将创建一个新文件 */ logFile, err := os.OpenFile("./golang.log", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0766) if err != nil { panic(err.Error()) } else { // 控制台打印log log.Println([]string{"你好", "golang日志"}) // 方法一,将文件设置为log输出的文件 log.SetOutput(logFile) // 输出前缀...阅读全文

博文 2020-03-27 01:32:47 是个懒人

golang regexp Flag 用法匹配换行

Flag 含义 i 不区分大小写 s 让.匹配\n(单行模式) m 除了开始/结束文本外,让^并$匹配开始/结束行(多行模式) 用法 例如:前缀"(?is)"使匹配的字符不区分大小写,并让. 匹配 \n package main import ( "fmt" "regexp" ) const CONTENT = `

< ahref="https://movie.douban.com/subject/1291546/" class=""> 霸王别姬  / 再见,我的妾 / Farewell My Concubin...阅读全文

博文 2020-03-20 05:32:44 崔天浩

前缀树 - 一种好玩的树型数据结构

上篇内容有在介绍 Gin 的路由实现时提到了前缀树,这次我们稍微深入探究一下前缀树的实现。本文以一道编程题为例,讲述前缀树的实现,以及前缀树的一种优化形态压缩前缀树。 MapSum 问题 LeetCode 上有一道编程题是这样的 实现一个 MapSum 类里的两个方法,insert 和 sum。对于方法 insert,你将得到一对(字符串,整数)的键值对。字符串表示键,整数表示值。如果键已经存在,那么原来的键值对将被替代成新的键值对。对于方法 sum,你将得到一个表示前缀的字符串,你需要返回所有以该前缀开头的键的值的总和。示例 1: 输入: insert("apple", 3), 输出: Null 输入: sum("ap"), 输出: 3 输入: insert("app", 2), 输出: ...阅读全文

博文 2018-10-13 16:34:39 Y_xx

golang版KMP算法 实现判断旋转词

参照java版的写的,作者学习golang,进过一番折腾终于对kmp算法了解了,有不对的地方改正 1 package main 2 3 import ( 4 "fmt" 5 // "strings" 6 ) 7 8 //判断是否为旋转词 9 func isRotation(a, b string) bool { 10 if a == "" || b == "" { //如果俩个输入的字符串为空的话 直接return false 11 return false 12 } 13 b2 := b + b //把b相加起来拼成长 串 14 return getIndexOf(b2, a) != -1 //如果getIndexOf 为-1 则返回false 15 } 16 17 func getInd...阅读全文

博文 2016-08-30 16:00:00 hitxwk

Go项目(二)、toolbar和Material Design风格的选择

一、问题的出现: 使用google文档的写法,使用的material design风格只能在android L上面显示,sdk版本低于21的模拟器出现崩溃,所以为了能够在低版本的手机上显示同样的效果,我们使用toolbar进行显示。 二、原来使用于5.0的风格的写法(在自定义的theme中item会有android:这个命名空间的前缀) 三、使用toolbar的写法(一般在自定义的theme中没有android:这个命名空间的前缀) 具体的详细的操作可以看这篇博文 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $nu...阅读全文

博文 2016-05-04 22:00:03 HNAer_RadAsm

golang 日志模块(log)

log 日志 log 模块可以自定义log 对象, 也可以使用log默认对象的日志方法 func New 创建log对象 func New(out io.Writer, prefix string, flag int) *Logger logs := log.New(os.Stdout, "lcoal Log:", 0) 设置获取日志属性 func Flags 获取标识 func (l *Logger) Flags() int fmt.Println( logs.Flags() ) func SetFlags 设置标识 func (l *Logger) SetFlags(flag int) logs.SetFlags( 10 ) func Prefix 获取信息前缀 func (l *Log...阅读全文

博文 2019-06-05 03:32:38 直立猿

前缀树

最近看代码,发现了一个敏感词检测是用前缀树写的,看起来速度蛮快,毕竟是拿空间换时间,LOG倍速。但是缺点也很明显,待检测文本需要与敏感词词库中的值完全匹配。所以对于简短的词法比较合适。 原理: 每一个节点可以有多个子节点 节点“存储”字符, 节点与节点之间的连线自动形成单词。 如a节点与d节点,之间的连线就是单词 ad 节点可能是叶子节点,此时也是一个单词的“终点”,否则是其他拥有相同前缀的节点的“过客”, wordcount要加一。 删除一个单词,则对应节点上的“过客”都要减一,直至减至叶子节点。 # coding: utf8 MAX_TREE_WIDTH = 26 INIT_CHAR = 'a' forbiddenwords = """ fuck fucker damn silly ""...阅读全文

博文 2018-12-15 19:34:45 尽情的嘲笑我吧

Go语言中使用fmt.Printf的小技巧

以下摘自The Go Programming Language: When printing numbers using the fmt package, we can control the radix and format with the %d, %o, and %x verbs, as shown in this example: o := 0666 fmt.Printf(“%d %[1]o %#[1]o\n”, o) // “438 666 0666” x := int64(0xdeadbeef) fmt.Printf(“%d %[1]x %#[1]x %#[1]X\n”, x) // Output: // 3735928559 deadbeef 0xdeadbeef 0XDEAD...阅读全文

博文 2017-06-25 13:53:53 肖楠

新手对 * & 前缀的不解

### 在我的理解中 go * 和c中的*一样,代表指针, &是在传递对象时候只传递指针 如果一个变量本身就是一个指针类型的话, 应该是不需要加 & 前缀的 如图: 如果在message本身就是一个指针类型的话,为什么要加&前缀呢 ? ![image.png](https://static.studygolang.com/171010/9d1aad866cc4c8ec9784e1ec247f69dd.png) ...阅读全文

Go 和 PHP 实现计算最长公共前缀

文链接:go letcode,作者:三斤和他的喵 php 代码个人原创 最长公共前缀(Longest-Common-Prefix) 题干如下: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1: 输入: ["flower","flow","flight"] 输出: "fl"示例 2: 输入: ["dog","racecar","car"] 输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。来源:力扣 解题思路 首先我们从题干入手,求字符串数组的公共前缀,那么什么是公共前缀呢?其实就是所有字符串都有的子串,并且这个子串的位置还比较特殊,它在字符串的开始位置。 有了这个认知之后,我们随意取两个字符串 S1 和 S2,先得...阅读全文

博文 2020-04-16 11:33:03 hxd_

[golang]slice的坑:从append到共享

go是宣扬实用主义的语言,很多时候都把c中的最佳实践直接规定成语法了。其中之一就是slice,简单但是非常容易踩坑。 先看一个小例子: func main() { a := make([]int, 2, 2) a[0], a[1] = 1, 2 b := append(a[0:1], 3) c := append(a[1:2], 4) fmt.Println(b,c) } 在这个小例子中,原本是希望将a[0:1]作为b的前缀,然后追加上3;将a[1:2]作为c的前缀,然后追加上4。但实际上输出结果并不是原本期望的[1 3] [2 4],而变成了[1 3] [3 4]。这是为什么呢? 我们知道数据结构中数组是非常高效的,可以直接寻址,但是有个缺陷,难以扩容。所以slice被设计为指向数组的指针...阅读全文

博文 2018-09-29 12:34:45 一桶冷水

golang bytes

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/youshijian99/article/details/85225341 func HasPrefix(s, prefix []byte) bool 判断s是否有前缀切片prefix。 package main import ( "bytes" "fmt" ) func main() { // 判断字符串是否包含"hel" fmt.Println(bytes.HasPrefix([]byte("hello"), []byte("hel"))) fmt.Println(bytes.HasPrefix([]byte("heelo"), []byte("hel"))) } 运行结果: true fa...阅读全文

博文 2019-04-17 14:31:34 youshijian99

LeetCode - 最长公共前缀 - Golang

题目:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 基于Golang的代码实现如下: func longestCommonPrefix(strs []string) string { // 定义返回值 var s string // 首先找到最短的字符串作为基准 tag := shortest(strs) // 为空直接返回 if tag == "" { return "" } // 对基准由长到短依次判断 for i := 0; i < len(t...阅读全文

博文 2020-02-12 20:32:41 邹友

Golang字符串

3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 func lengthOfLongestSubstring(s string) int { m := map[byte]int {} res := 0 for i, j := ...阅读全文

博文 2020-05-04 19:32:45 DoneIsBetter

让我们一起啃算法----最长公共前缀

最长公共前缀(Longest-Common-Prefix) 题干如下: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1: 输入: ["flower","flow","flight"] 输出: "fl"示例 2: 输入: ["dog","racecar","car"] 输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。来源:力扣 解题思路 首先我们从题干入手,求字符串数组的公共前缀,那么什么是公共前缀呢?其实就是所有字符串都有的子串,并且这个子串的位置还比较特殊,它在字符串的开始位置。 有了这个认知之后,我们随意取两个字符串 S1 和 S2,先得出 S1 和 S2 的公共前缀,记为 P1。如果没有公共前缀,那么直接返...阅读全文

博文 2020-04-28 10:32:47 三斤和他的朋友们

leetcode_208

Golang: 思路:这题是为了解决720题所预先做的准备,前缀树这个结构,大家去看看leetcode在这题的官方题解就知道了 代码如下: type Trie struct { ending bool next [26]*Trie } /** Initialize your data structure here. */ func Constructor() Trie { return Trie{} } /** Inserts a word into the trie. */ func (this *Trie) Insert(word string) { temp:=this for _,v:=range word { nxt:=v-'a' if temp.next[nxt]==nil { ...阅读全文

博文 2020-02-25 22:33:25 淳属虚构

leetcode_30

Golang: 思路:这题应该用map做会简单一些,但效率不会特别理想,这里补充个前缀树做法,当然,我使用前缀树其实是希望把它写成AC自动机的,这个留到下次吧。 代码如下: type Trie struct { ending bool next [26]*Trie } /** Initialize your data structure here. */ func Constructor() Trie { return Trie{} } /** Inserts a word into the trie. */ func (this *Trie) Insert(word string) { temp:=this for _,v:=range word { nxt:=v-'a' if temp....阅读全文

博文 2020-03-17 09:32:47 淳属虚构