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

多个goroutine如何协作

举个例子,比如我有一个数组,包含了 1-100 这些数字 有一个处理函数,比如输出平方 ``` go func cal(num int) { fmt.Println(num * num) } ``` cpu 是多核, 我想知道 go 如何能启用多个 goroutine 并行处理这 100 个数字 输出的顺序不重要 希望大神讲解下 最好能给段代码讲解下 谢谢...阅读全文

[易学易懂系列|rustlang语言|零基础|快速入门|(4)]

Borrowing继续讲讲另一个重要的概念:借用(borrowing),什么是借用?我们先来看前一文章([易学易懂系列|rustlang语言|零基础|快速入门|(3)])的代码 : let a = [1, 2, 3]; let b = a;println!("{:?} {:?}", a, b);// [1, 2, 3] [1, 2, 3] let a = vec![1, 2, 3]; let b = a;println!("{:?} {:?}", a, b);// Error; use of moved value:a我们从上篇文章知道,第二段代码会报错,那怎么才能不报错呢?我们改成以下代码: let a = vec![1, 2, 3];let b =&a;//这里加了一个符号:&,表示借用...阅读全文

什么是go语言

简介 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。 描述 Go的语法接近C语言,但对...阅读全文

博文 2019-04-26 20:35:10 li513991

求教,go语言里关于json.Unmarshal 解析json格式数据问题

我想解析一个json文件。对应的结构体是有两层嵌套。但是第二层嵌套就解析不出来了,求大神们指点 type Result struct{ Creds []Credential } type Credential struct { ThirdParty string Cid string `json:"cid"` Csecret string `json:"csecret"` RedirectURL string Scopes []Scope AuthURL string TokenURL string } type Scope struct{ s string } 结构体如上,解析...阅读全文

golang基础

Go介绍 并发支持,垃圾回收的编译型系统编程语言。 特点: 类型安全 和内存安全 以非常直观和极低代价的方案实现高并发 高效的垃圾回收机制 快速编译 (同时解决C语言中头文件太多的问题) 为多核计算机提供性能提升的方案 UTF-8编码支持 Go环境变量 GOEXE=.exe // 形成可执行文件的后缀 GOPATH // 工作目录 GOPATH下约定俗成的目录: bin // 存放编译后生成的可执行文件 pkg // 存放编译后生成的包文件 src // 存放项目源码 常用命令 go get // 获取远程包 (git或hg(如果是谷歌code上托管)) go run // 直接运行程序 go build // 编译,检查是否有编译错误 go fmt // 格式化源码 go install ...阅读全文

博文 2017-08-22 01:05:10 Alogy

即使是大神也没见过的glide的 大坑!!!!!

***大神,我在网上搜索过了,都没有遇到这种问题,于是乎想到了这里和你*** **** 问题描述: >这个是执行完 glide init 后的结果,ty是项目,不知道为什么glide.yaml中package 为 “.” ,我认为它应该为ty,并且glide.yaml中显示需要引入ty/controller 等等,我认为不应该出现本地的包的。所以我再执行glide install时就报错了,因为找不到这些本地文件。 望大神解救!~~~~~ 执行过程:glide init >![a.jpg](https://static.studygolang.com/180716/8b4549035700106f2372a3dc4278f4ad.jpg) 执行过程:glide install >![webw...阅读全文

博文 2018-07-16 17:28:58 xmge

go语言学习

go语言菜鸟教程:http://www.runoob.com/go/go-tutorial.html 实效go编程:http://docscn.studygolang.com/doc/effective_go.html 在线go运行环境:https://tour.golang.org/welcome/1 go的安装:参照这里在Windows上安装非常easy:http://www.runoob.com/go/go-environment.html go中文标准库(Ctrl+f):http://docscn.studygolang.com/pkg/#stdlib go英文包索引与搜索引擎:https://godoc.org/ /*********************************...阅读全文

博文 2016-10-05 04:00:05 曾劲松

Golang Read File line by line

学习什么语言都得从读文件开始,好像记得一个大神说过计算机编程就是"打开文件,操作,关闭文件"。初学Golang就记一下go语言的文件操作 Read File func main(){ rw,err := os.Open("") if err != nil { panic(err) } defer rw.Close() rb := bufio.NewReader(rw) for { line, _, err := rb.ReadLine() if err == io.EOF { break } //do something fmt.Println(string(line)) } }func main(){ rw,err := os.Open("") if err != nil { panic(...阅读全文

博文 2017-02-09 13:42:15 dreambei

多表查询的问题,mysql查询有数据,编写models的时候没传数据(数量是有传值,其他参数没有传值)(models联表查询创建,数据库没有表),各位大神请教下

package products import ( "erp/models" "github.com/astaxie/beego/orm" ) type Product_Inventorys struct { Id int64 Name string Formate string Unit string Warehouse string C_name string Purchase string Price string Quantity string } func init() { orm.RegisterModel(new(Product_Inventory)) } //统计仓库存量 func ListInvent()(num int64,err error, invent []Prod...阅读全文

博文 2019-01-15 20:42:11 zhong

新入GO门,请教大神们关于defer的一个问题

```go func abc() interface{} { blogRows, _ := models.Db.Query("select * from blog where id=1") defer blogRows.Close() catRows, _ := models.Db.Query("select * from category where id=1") defer catRows.Close() return 1 } ``` 这样并没有实现我想要的释放掉两个资源,似乎只释放了一个。于是我又做了以下实验: ```go func abc() interface{} { blogRows, _ := models.Db.Query("select...阅读全文

Golang学习笔记4——控制语句

1.基础知识补充(指针、递增递减语句) 指针 go虽然保留了指针,但是与其它编程语言不同的是,在go当中不支持指针运算以及"->"运算符,而直接采用"." 选择符来操作指针目标对象的成员 操作符"&"取变量地址,使用"*"通过指针间接访问目标对象 默认值为nil而非null 在go中,++与--是作为语句而并不是作为表达式 a := 1 a++ //但不能这样:a := a++,只能作为单独的语句独占一行 2.if判断语句 条件表达式没有括号 支持一个初始化表达式(可以是并行方式) 左大括号必须和条件语句或else在同一行 支持单行模式 初始化语句中的变量为block级别,同时隐藏外部同名变量 func main(){ a := 10 if a:=1 { fmt.Println(a) } f...阅读全文

博文 2017-10-24 16:00:01 marks-gui

关于*osFile.Read() 读取的问题

我有一个文件a.txt 里面的内容为 1,2,3,4,5,6,7 (每个数字单独一行) 然后读取文件的内容 ```go func main() { readFile, err := os.Open("a.txt") buf := make([]byte, 10) for { n, _ := readFile.Read(buf) fmt.Println(string(buf), "读取子节:", n) if n == 0 { break } } } ``` 运行结果为: 1 2 3 4 5 读取子节: 10 6 7 3 // 问题在这 4 5 读取子节: 4 6...阅读全文

golang adodb mssql数据库的query格式化奇葩问题

用adodb驱动查询mssql数据。如果参数带有大括号。就会显示错误: ServeSrs sql db.Prepare error发生意外。 (语法错误或违反访问规则) 代码如下: db, err0 := sql.Open("adodb", cfg.Cfg["mssql"]) if err0 != nil { log.Println("ServeSrs sql open error") } else { defer db.Close() stmt1, err0 := db.Prepare(` select top ? * from (select a.[Id], a.[CreateDate],a.[PublisherId],a.[NickName],a.[FileSize],a.[Follo...阅读全文

博文 2019-05-13 18:34:47 毛毛v5

go 开发 寻求大神帮助

go怎么实现延迟任务执行 main函数执行后 直接退出了 在main函数里面是有select{}可以实现执行完后在退出 ,但是实际项目应用中肯定不能这样做,例如执行一个每20秒执行一个任务 应该怎么做func main() { //go timer1() //timer2() for i :=1; i <10 ; i++ { task :=&Task{i+1,"a",""} task.Start() } } type Task struct { delay int key string data string } func NewTask(delay int,key ,data string) *Task { task :=&Task{ delay:delay, key:key, data:...阅读全文

博文 2018-08-02 13:46:30 lemonsds

go 方法参数类型转换

按照之前的理解go 里面interface可以当成java 里面的object类型 那么理所当然的声明一个如下结构的方法 ![image.png](https://static.studygolang.com/171203/da52b496488b12dd89e5589a7069dd00.png) 然后调用该方法传入如下参数 ![image.png](https://static.studygolang.com/171203/5290c560a4e714097723b7f0600a72ab.png) 结果却显示类型不匹配,表示不能理解,请大神指教。 ![image.png](https://static.studygolang.com/171203/d2b34cab19...阅读全文

Go基础系列:流程控制结构

条件判断结构:if else 分支选择结构:switch case 循环结构:for break:退出for或switch结构(以及select) continue:进入下一次for迭代 虽然Go是类C的语言,但Go在这些流程控制语句中的条件表达式部分不使用括号。甚至有些时候使用括号会报错,但有些复杂的条件判断需要使用括号改变优先级。 如: if (name == "longshuai" && age > 23) || (name == "xiaofang" && age < 22) { print("yeyeye!!!") } if语句 if condition1 { // do something } else if condition2 { // do something else }...阅读全文

博文 2018-11-23 09:10:52 f-ck-need-u

04Go基本语法

Go基本语法 [TOC] 1、运算符 Go 语言内置的运算符有:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符。 (1)算数运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 ++ 自增 -- 自减 (2)关系运算符 运算符 描述 == 检查两个值是否相等,如果相等返回 True 否则返回 False。 != 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 > 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 < 检查左边值是否小于右边值,如果是返回 True 否则返回 False。 >= 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 <= 检查左边值是否小于等于右边值,如果...阅读全文

请教一个jsonDecode编码时遇到的问题

代码如下: ```go var temp interface{} err := json.Unmarshal(code, &temp) m := temp.(map[string]interface{}) cmd_name := m["command"] msgId := m["msg_id"] fmt.Println("cmd_name: ", m["command"]) ``` 各位大神,帮忙看一下这段代码有没有什么问题,一个jsonDecode的过程报错了,错误是: > panic: interface conversion: interface {} is nil, not map[string]interface {...阅读全文

go语言 json 问题

前端 response 里的 json 带引号 ![1301C40A217607330F2A996AB35E18C3.jpg](https://static.studygolang.com/171110/1301c40a217607330f2a996ab35e18c3.jpg) 日志里显示正常 ![4FFEC1F37D8DFF9E9C3408F7F03601BF.jpg](https://static.studygolang.com/171110/4ffec1f37d8dff9e9c3408f7f03601bf.jpg) 代码里是 借用的 https://studygolang.com/articles/7970 这个例子。。 用他的返回值发送 ```go this...阅读全文

急求,这个bug怎么解决!!!!!!!!!!!!!!!!!!!关于go语言grpc的问题。。。。。。。。大神

写grpc拦截时,调用方法显示类型不一致,但是类型是相同的,而且其他的项目都行,就这个不行 ![image.png](https://static.studygolang.com/170919/a5f86bf1be5b3a56547f5b25df1e48a9.png) ![微信图片_20170919161430.png](https://static.studygolang.com/170919/621c80354171581acf57c2750eca372c.png...阅读全文

glide install 后执行 build 并不能找到正确的包是为什么

如题,之前用 `go get `安装在`go path` 里面执行`build` 没问题 现在换了`glide `就把`go path` 下的`src` ` bin`目录清空了 `glide install` 后执行`go build`的时候好像还是 去`go path `找依赖。并不能正确的到`vendor`目录下找依赖 这个问题已经困扰我好久了,希望能解决下,谢谢各位大...阅读全文

求大神解答,在go语言动态形成的网页中怎么用range调用前一个range出来的值

![问题.png](http://studygolang.qiniudn.com/170817/ac27bbd19b13aa1fd901875a31fecd4e.png) 我自己定义了一个结构体,然后,local.Name是一个[]string,local.Ipv是一个map,希望先range出来name之后然后用range $.Ipv.name(刚刚第一个range出来的name)打出该name在map中的对应项,求大神打...阅读全文

A Tour of Go: Basics 2

For For语句有三个基本部分组成,以分号隔开: 初始语句:只在第一次循环开始前执行,通常就是变量定义和初始化,这里定义的变量作用范围只在For循环本身。 条件表达式:每一次循环开始前执行,当false结束循环。 post语句:每一次循环结束后执行。 技巧: 初始语句和post语句是可以省略的。 条件表达式也可以省略,就是死循环。 Go语言只有一个循环结构,就是for语句。while语句在Go中也是由for表示。 // for sum := 1 for ; sum < 1000; { sum += sum } // while sum := 1 for sum < 1000 { sum += sum } 注意点: 与其他语言不同,三个语句不需要用括号括起来。 循环体需要用大括号括起来。 I...阅读全文

博文 2018-10-07 22:35:14 zxdevops

GO语言学习笔记(五)GO语言函数的简易计算

一、计算示例 package main import "fmt" func main() { a := 100 b := 2 fmt.Printf("%d + %d = %d\n", a, b, Add(a, b)) fmt.Printf("%d - %d = %d\n", a, b, Sub(a, b)) fmt.Printf("%d * %d = %d\n", a, b, Mul(a, b)) fmt.Printf("%d / %d = %d\n", a, b, Div(a, b)) } func Add(x, y int) int { return x + y } func Sub(x, y int) int { return x - y } func Mul(x, y int) in...阅读全文

博文 2019-01-28 17:35:13 Mr大表哥

Golang学习笔记4——控制语句

1.基础知识补充(指针、递增递减语句) 指针 go虽然保留了指针,但是与其它编程语言不同的是,在go当中不支持指针运算以及"->"运算符,而直接采用"." 选择符来操作指针目标对象的成员 操作符"&"取变量地址,使用"*"通过指针间接访问目标对象 默认值为nil而非null 在go中,++与--是作为语句而并不是作为表达式 a := 1 a++ //但不能这样:a := a++,只能作为单独的语句独占一行 2.if判断语句 条件表达式没有括号 支持一个初始化表达式(可以是并行方式) 左大括号必须和条件语句或else在同一行 支持单行模式 初始化语句中的变量为block级别,同时隐藏外部同名变量 func main(){ a := 10 if a:=1 { fmt.Println(a) } f...阅读全文

博文 2017-10-22 09:04:44 MarksGui

golang实战笔记

golang实战笔记 一、集合类型 1.值指针和引用类型 a、go语言变量持有相应的值,列外:通道、函数、方法、映射以及切片的引用变量持有的都是引用,以即保存指针的变量。 b、函数或者方法的参数是值传递,即传递的值会被复制一次,因此: 对于布尔变量和数值类型的参数来说,很廉价,每个变量占1~8个字节; 按字符串传也廉价,64位机器16字节,32位机器8字节; 数组代价很大,使用切片替代; 注意:通过使用指针,我们可以让参数的传递成本最低,并且可修改;指针亦可以指向引用类型,但只对切片有用 2. new(Type) === &Type{} 两种语法都分配了一个Type类型的值,同时返回一个指向该值的指针;使用大括号的有点,可以为其指定初始值 3. 数组和切片 a、数组:是一个定长的序列,其中元...阅读全文

博文 2019-01-04 00:34:48 yongfutian

Golang学习笔记-基础知识

包 Go源文件中非注释的第一行需要指明这个文件属于哪个包,每个 Go 应用程序都包含一个名为 main 的包,package main表示一个可独立执行的程序。要使用其它包的代码需要使用import引入包。 package main import ( "fmt" ) func main() { fmt.Println("Hello, World!") } 标识符 当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头时,可以被外部包的代码所使用,而标识符如果以小写字母开头则只能在包内部使用。 函数 函数第一个左大括号不能单独放在一行,否则编译时会报错。 func main() { fmt.Println("Hello, World!") } 行分隔符 在 Go中,一行代表一...阅读全文

博文 2019-08-26 19:32:48 土豆吞噬者

02-Go语言Hello World

Go与C语法相似 Go注释和C语言一样 // 表示单行注释 /**/ 表示多行注释 Go也是由函数构成 Go语言的入口函数也是main,而且一个程序里面只能有一个main, 并且没有main函数程序不能执行 Go语言的基本格式 func main(){ 逻辑语句; } package main import "fmt" func main() { fmt.Println("hello world") } 格式详解: func表示这个一个函数 main表示函数名称 (): 形参列表 {}: 函数体 package main 表示main的包; import "fmt", 表示引包,告诉系统去哪里找printf这个方法 并且引包之后必须通过 包名.函数名称 的方式来调用fmt.printf("H...阅读全文

博文 2018-10-08 19:34:40 月色下的阳光

【Go学习笔记】 5、控制语句

指针 Go虽然保留了指针,但与其他编程语言不同的是,在Go当中不支持指针运算以及“->”运算符,而直接采用“.”选择符来操作指针目标对象的成员 操作符 “&”取变量地址,使用“ * ” 通过指针间接访问目标对象 默认值为nil而非NULL 递增递减语句 在Go当中,++与– 是作为语句而并不是作为表达式。 选择语句switch 可以使用任何类型或表达式作为条件语句 不需要写break,一旦条件符合自动终止 如希望继续执行下一个case,需使用fallthrough语句 支持一个初始化表达式(可以是并行方式),右侧需跟分好 左大括号必须和条件语句在同一行 12345678910111213141516171819202122232425262728293031323334353637 func...阅读全文

博文 2017-05-30 05:09:42 HundredLee

作为云计算 2.0 时代的里程碑,云数据库PolarDB 还需要做什么?

随着用户、业务和数据的增长,由于I/O瓶颈(存储和网络)导致的备份、性能、迁移、升级、只读实例、磁盘容量、Binlog延迟等相关问题渐渐显现;过多数据库存储引擎的类型导致的工程效率以及运维成本显著上升,最好有一种通用的产品技术架构能兼顾不同用户场景的需求。针对以上关系型数据库在云托管环境逐渐暴露出一些问题,阿里云将在9月下旬推出自研通用云数据库PolarDB,是国内首个能从根本解决两大痛点的关键里程碑产品。 阿里云PolarDB是国内首个自主研发的通用云数据库,它拥有商业数据库一样的性能,但价格仅为前者的1/10,进一步降低用户的上云成本,大幅度提升OLTP性能,满足用户在业务连续性、在线业务扩展能力、数据安全上的需求,将彻底颠覆商业数据库的暴利时代。 在产品架构上放弃了通用分布...阅读全文

Golang学习笔记-map

map是一些键值对的集合,默认值为nil,使用内置函数make创建map: var map_variable map[key_data_type]value_data_type map_variable := make(map[key_data_type]value_data_type) func main() { var numberMap map[string] int numberMap=make(map[string]int) println(len(numberMap)) } map可以使用大括号来初始化: var numberMap =map[string] int{"one":1,"two":2,"three":3} 判断元素是否存在: func main() { var nu...阅读全文

博文 2019-09-27 23:32:44 aside section ._1OhGeD

golang控制结构

1. if结构 概念:if是用于测试某个条件的语句,如果该条件成立,则会执行if后面由大括号包裹的代码块,否则就会忽略该代码块继续执行后面的语句 其格式如下 if condition { // statement } 2. if-else结构 如果有两个分支就可以在if条件语句的基础上添加else语句 其格式如下 if condition { // statement } else { // statement } 3. 多重if-else结构 多重if-else的格式如下 if condition { // statement } else if condition { // statement } else { // statement } 4. switch结构 switch分支结构如...阅读全文

博文 2019-04-02 23:34:38 孤风追影

Go实现数据结构--栈

使用golang语言的interface接口类型创建栈,栈可以操作各种数据类型,非常简洁方便 package main import "fmt" // 栈:先进后出,从栈顶取数据,栈低固定 type Stack struct { Top int // 栈顶 Capacity int // 栈容量 Prt *[]interface{} // 指向栈指针 } // 初始化栈 func (s *Stack) StackInitial(capacity int){ s.Capacity =capacity s.Top =0 // 使用interface类型,所有数据类型都能兼容 m:= make([]interface{},capacity) s.Prt =&m } // 元素入栈,栈顶上升 fun...阅读全文

博文 2020-04-09 18:32:54 阿鸠先生