go语言

go报illegal rune literal错误

人盡茶涼 提交于 2020-01-22 05:15:36
小编对go语言小白一个,昨天安装好go语言开发包,抱着感兴趣的态度,今天写了go第一个程序,很简单的hello world,没想到却报错了。贴出代码如下: 运行go run hello.go报illegal rune literal错误, 既然有问题就解决问题,因对go语言属于小白,猜想会不会是单引号引起的,于是动手改。再次运行结果成功 于是去查了下资料,go语言使用双引号包裹字符串而不使用单引号包裹。小编是因为写其他语言单双引号都可以写习惯了,没想到go这么严格!!!继续学习中... 来源: CSDN 作者: Hello菜先森 链接: https://blog.csdn.net/weixin_43713498/article/details/104059423

Go语言实战-爬取校花网图片

你。 提交于 2020-01-21 22:07:21
一、目标网站分析   爬取校花网 http://www.xiaohuar.com/ 大学校花所有图片。 经过分析,所有图片分为四个页面, http://www.xiaohuar.com/list-1-0.html ,到 http://www.xiaohuar.com/list-1-3.html 。 二、go代码实现 // 知识点 // 1. http 的用法,返回数据的格式、编码 // 2. 正则表达式 // 3. 文件读写 package main import ( "bytes" "fmt" "io/ioutil" "net/http" "os" "path/filepath" "regexp" "strings" "sync" "time" "github.com/axgle/mahonia" ) var workResultLock sync.WaitGroup func check(e error) { if e != nil { panic(e) } } func ConvertToString(src string, srcCode string, tagCode string) string { srcCoder := mahonia.NewDecoder(srcCode) srcResult := srcCoder.ConvertString(src)

Go语言使用Godep进行包管理

泪湿孤枕 提交于 2020-01-21 13:46:06
一、为什么要包管理 默认Go的第三方包都是放在Gopath的src目录下,而且这些包都没有版本号的概念,这样的可能会出现一些问题。 举个例子:当A同事将开发完程序之后,此时可能引用了一个第三方的包,过了不久之后,B同事接手了该项目,此时如果B同事通过go get 命令获取了包,而且包的版本进行了升级,恰巧这个包又不兼容以前的版本,这就会导致程序编译错误等问题。或者当这个维护的第三方包删除了,那么B同学则不能下载到该包。 由上面的例子就能知道,为什么需要进行包的依赖管理了。 go里面进行包依赖管理的工具有几个。godep就是其中之一。 二、安装godep 1.安装方法: go get github.com/tools/godep 2.验证是否安装成功:在shell里面键入 godep ,应该会出现帮助信息。 Usage: godep command [arguments] The commands are: save list and copy dependencies into Godeps //save命令主要是用于保存当前的依赖 go run the go tool with saved dependencies //主要是用于执行Go程序,相当于在原来的go命令上套了一层,因为涉及到了包管理 get download and install packages with

为什么Go语言不支持重载?

 ̄綄美尐妖づ 提交于 2020-01-21 04:01:45
上图是Golang官网FAQ的部分截图,看来关于Go不支持重载的这个问题困扰了很多从面向对象语言转到Go的开发者。官方在这里做出了解答。 在上面的回答中有这样一句话: Experience with other languages told us that having a variety of methods with the same name but different signatures was occasionally useful but that it could also be confusing and fragile in practice. 其意思是: 使用其他语言的经验告诉我们,使用具有相同名称但签名不同的多种方法有时会很有用,但在实践中也可能会造成混淆和脆弱。 接下来又说: 在Go的类型系统中,仅按名称进行匹配并要求类型一致是一个简化的主要决定。 最后一句话: 关于操作员重载,似乎比绝对要求更方便。 同样,没有它,事情会变得更简单。 整个的解答非常漂亮、简洁。我们看完之后就会理解,Go语言的设计者之所以没有在Go中实现方法的重载,并没有复杂的理由,核心原则就是: 让Go保持足够的简单。 这也能看出来Go语言的设计者有着极大的选择和克制。 其实,笔者认为重载在本质上并没有很大的实际意义。只是表现力和表现形式上有一定的差别

go语言学习 strings常用函数

帅比萌擦擦* 提交于 2020-01-20 02:05:24
strings包中的函数用法  参考链接http://studygolang.com/articles/88 1、strings.replace() 函数原型 func Replace(str1, old, str2, n int) string //old是str1中的字符串,用str2替换str1中的old,一共替换n个。如果n<0,则全部替换 fmt.Println(strings.Replace("tet tet tet", "e", "es", 1 )) //输出:test tet tet fmt.Println(strings.Replace("tet tet tet", "e", "es", 2)) //输出:test test tet fmt.Println(strings.Replace("tet tet tet", "e", "es", - 1)) //输出:test test test 来源: https://www.cnblogs.com/wanglin2016/p/6596984.html

Go语言strings包

南笙酒味 提交于 2020-01-20 02:02:56
目录 strings包实现了用于操作字符的简单函数。 func EqualFold 判断两个utf-8编码字符串(将unicode大写、小写、标题三种格式字符视为相同)是否相同。 func EqualFold(s, t string) bool 示例: func main() { str1 := "Golang" str2 := "golang" fmt.Println(strings.EqualFold(str1, str2)) //输出: true } HasPrefix 判断s是否有前缀字符串prefix。 func HasPrefix(s, prefix string) bool 示例: func main() { var str string = "Hello" fmt.Println(strings.HasPrefix(str, "He")) //true fmt.Println(strings.HasPrefix(str, "he")) //false } func HasSuffix 判断s是否有后缀字符串suffix。 func HasSuffix(s, suffix string) bool 示例: func main() { var str = "Hello" fmt.Println(strings.HasSuffix(str, "llo")) //true

云计算之go语言——基础语法(中)

雨燕双飞 提交于 2020-01-19 14:18:32
9 Go 语言循环语句 1, 概念 在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。 2, 分类 1. for 循环 : 重复执行语句块 a. 语法: for init; condition; post {} for condition {} for {} init: 一般为赋值表达式,给控制变量赋初值; condition: 关系表达式或逻辑表达式,循环控制条件; post: 一般为赋值表达式,给控制变量增量或减量。 b. 实例 for02.go package main import "fmt" func main() { sum := 0 for i := 0 ; i <= 10; i++ { sum += i } fmt.Println(sum) } for03.go package main import "fmt" func main() { sum :=1 for ; sum <=10 ; { sum +=sum } fmt.Println(sum) for sum <= 10 { sum +=sum } fmt.Println(sum) } c. For-each range 循环 这种格式的循环可以对字符串、数组、切片等进行迭代输出元素。 实例: for04.go package main import "fmt" func

Go 语言

帅比萌擦擦* 提交于 2020-01-19 02:59:38
基本类型 go语言 格式化输出 go 数据类型 go语言 类型转换 go语言 常量 go语言 结构体 go语言 数组 引用类型 go语言 字符串 | go语言 字符串处理 | go 字符串转换 go语言 slice go语言 map go语言 set 指针类型 go语言 指针 函数 go语言 函数 go语言 匿名函数 面向对象 go语言 继承 go 继承-方法 go语言 方法继承 go语言 接口 go语言 多态 运算符与控制语句 go语言 运算符 go语言 控制语句 go语言 defer IO go语言 硬盘IO 并发 进程 线程 协程 go语言 gosched go语言 协程 go语言 channel 错误处理 go语言 recover go语言 error go语言 panic go语言 select go 同步-互斥锁 go语言 同步-读写锁 go 条件变量 其他 go语言 time 来源: CSDN 作者: Claroja 链接: https://blog.csdn.net/claroja/article/details/103792078

Go语言 之写入数据

馋奶兔 提交于 2020-01-17 07:13:27
package main import ( "fmt" "os" ) func CreateFile(file_name string) { //创建文件 f, err := os.Create("a.txt") //判断是否出错 if err != nil { fmt.Println(err) } // n:写入长度, WriteString:写入一个字符串 n, errW := f.WriteString("i am yang") //判断是否出错 if errW != nil { fmt.Println(errW) } fmt.Println(n) f.Close() } func main() { file_name := "a.txt" CreateFile(file_name) } 来源: https://www.cnblogs.com/yang-2018/p/11112454.html

Go语言常用命令介绍

孤街浪徒 提交于 2020-01-17 05:26:02
go build go build 命令主要是用于测试编译。在包的编译过程中,若有必要,会同时编译与之相关联的包。 如果是普通包,当你执行go build命令后,不会产生任何文件。 如果是main包,当只执行go build命令后,会在当前目录下生成一个可执行文件。如果需要在$GOPATH/bin木下生成相应的exe文件,需要执行go install 或者使用 go build -o 路径/a.exe。 如果某个文件夹下有多个文件,而你只想编译其中某一个文件,可以在 go build 之后加上文件名,例如 go build a.go;go build 命令默认会编译当前目录下的所有go文件。 你也可以指定编译输出的文件名。比如,我们可以指定go build -o myapp.exe,默认情况是你的package名(非main包),或者是第一个源文件的文件名(main包)。 go build 会忽略目录下以”_”或者”.”开头的go文件。 如果你的源代码针对不同的操作系统需要不同的处理,那么你可以根据不同的操作系统后缀来命名文件。例如有一个读取数组的程序,它对于不同的操作系统可能有如下几个源文件: array_linux.go array_darwin.go array_windows.go array_freebsd.go go build的时候会选择性地编译以系统名结尾的文件