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

golang的cgo支持调用C++的方法

1)swift,貌似官网的推荐 2)extern "C" 我使用后者,用起来比较爽,上代码 c.h 1 #pragma once 2 3 #ifdef __cplusplus 4 extern "C" { 5 #endif 6 void test(); 7 #ifdef __cplusplus 8 } 9 #endif c.c 1 #include "cplus.hpp" 2 #include "c.h" 3 4 void test() { 5 A *a = new B(); 6 a->test(); 7 } cplus.hpp 1 #pragma once 2 3 class A { 4 public: 5 virtual void test(); 6 }; 7 class B: publ...阅读全文

博文 2015-03-12 03:00:01 sohoer2003

golang json

第一次写 go 代码,研究了一下 json 解析。没想到事情还挺多。 ```go package main import ( "encoding/json" "fmt" "github.com/bitly/go-simplejson" ) type personInfo struct { Name string `json:"name"` Age int `json:"age"` Email string `json:"email" xml:"email"` } type personInfo1 struct { Name string `json:"name"` Email string `json:"email" xml:"email"` C string } func main() {...阅读全文

博文 2018-12-28 23:44:23 GuoDapeng

1对N的通信方式请教

1个serv goroutine需要和5000以上可变数量的client goroutine通过chan通信,client作为send发送数据量较大,请问serv与client能通过chan[ ] string 来通信吗?serv端如何监控这个 chan slice呢?貌似select无法完成?如果只能用一个异步chan来完成,在serv端for range chan时是否能保证一个client所发送消息的有序被处理?性能上有什么好的建议?谢...阅读全文

go语言介绍

Go 是 google 在 2009 年推出的系统编程语言,2013 年 5 月 13 号 发布 Go 1.1 版本。Go 语言虽然现在不是很流行,但是很多人都看好它,O__O"…。NodeJS 也是新出的技术(貌似也是 2009 年出来的),不过 JavaScript 语言的历史相对就长了些;Python 很火。有次分享会上一个人说,JS 是屌丝逆袭的语言,go 才是高富帅 !~~~~(>_<)~~~~ Go 到底有神马过人的优点? 简单易学:go 要比 c、c++ 简单,易学性和 Java、c# 相当,但又没有后面两者那么庞大; 系统编程:虽说 go 自己说是定位于系统编程,不过很多人拿来做 web 开发,O__O"…; 并发编程:好吧,这年头大家都支持并发,算不得过人的优点;不过 go...阅读全文

博文 2014-10-04 19:25:55 zjushawnelee88

Go 语言中的取止运算符"&"貌似有bug

```go //定义一个int类型变量 var v1 int= 10 //声明一个指向int指针变量, var vp *int //用取值运算符&拿到变量v1的内存地址,并把它保存在指针变量vp中 vp = &v1 //打印指针变量的值 fmt.Println(vp) //会打印一个0x开头的十六进制形式的地址,这里都没问题。。 //声明一个结构体类型 type student struct{ Id int Name string } //定义一个student结构体变量 var st1 student = student{1,"小明"} //声明一个student var st1p *student //用取值运算符&拿到变量s...阅读全文

chan使用注意

package main import ( "fmt" ) func main() { c := make(chan int, 0) go func() { i := 10 for i > 0 { c <- i i-- } close(c) }() for { fmt.Println("loop") select { case _, ok := <-c: fmt.Println("recv:", ok) if !ok { fmt.Println("break for") break } } } } 不能break for语句,貌似break了select语句,程序一直在死循环,不能正常退出!...阅读全文

博文 2017-03-21 02:43:16 756445638

我的第一个Go程序

读取一个TCPDump文件的包头并打印出来。用到了os.Open()、os.CLose()打开关闭文件。用到bufio.reader.read()读取数据到byte数组。 Go语言貌似不会自动转型,所以byte移位前要强制转型。 package main import ( "fmt" "os" "bufio" ) func parseTCPDumpHeader(h[] byte){ var magic uint32 = uint32(h[3])<<24 | uint32(h[2])<<16 | uint32(h[1])<<8 | uint32(h[0]); var major uint16 = uint16(h[5])<<8 | uint16(h[4]); var minor uint16 ...阅读全文

博文 2016-04-18 13:00:00 wildwind79

对于golang 包的疑惑

`GOPATH="/root/go"` 包的疑惑: 1.对于第三方加载的包,go可以通过GOPATH去找到, 对于我自己写的包,是否必须放到 `GOPATH` 下,也就是对于我自己写的包,go必须通过 `GOPATH` 找到,有没有其他方式? 2.我发现main包下的多个go文件,是不能相互访问的,这样,可以在不切换 `GOPATH`的情况下,开发多个项目, 不同的项目不同的包,不同的main文件。 我想问的是main包下的文件里面的函数只能一个对吧、? 貌似我问的有点怪怪的,但,我还是有点小迷糊go的包管理。 ...阅读全文

Golang视频资源

看到了好几个教程贴,貌似大家都很缺资源?我这里来送上一份 这是从网络上搜集到的资源,还有别的比如Python什么的都有的。 大家一起学习,一起进步哈 链接: https://pan.baidu.com/s/1elKR0RNxD4K2aIV0q5koEQ 提取码: ixa2 链接: https://pan.baidu.com/s/1V4LAdYAamD5pHFVoBo4cyA 提取码: srg...阅读全文

博文 2019-02-20 23:45:42 handsomeyu7

关于接口的小问题

刚开始学go语言,在最近学习go指南里遇到一个问题,貌似一个结构体,或者说被type语法定义的新类型,目前是结构体和基本类型的新名字,在实现error和Stringers接口之后,使用Println方法时调用会有优先级,想问问大佬们为什么会这样。

下面是代码


package main
import (
	"fmt"
)
type MyError struct {
	What string
}
func (e MyError) Error() string {
	return "Error()"
}
func (e MyError) String() string{
	return "String()"
}
func...阅读全文

关于error接口和stringers接口的优先级

刚开始学go语言,在最近学习go指南里遇到一个问题,貌似一个结构体,或者说被type语法定义的新类型,目前是结构体和基本类型的新名字,在实现error和Stringers接口之后,使用Println方法时调用会有优先级,想问问大佬们为什么会这样。

下面是代码

 package main import ( "fmt" ) type MyError struct { What string } func (e MyError) Error() string { return "Error()" } func (e MyError) String() string{ return "String()" } func main() { myerr:=MyE...阅读全文

博文 2017-12-18 14:25:16 goCurrent

如下方法执行得不到想要的结果,大概是想知道不定参数表怎么传参?

``` func All(str string,t ...interface{}) { sprintf := fmt.Sprintf(str,t); fmt.Println(sprintf) } func main() { All("123456%s%d","qqq",123) fmt.Print(fmt.Sprintf("123456%s%d","qqq",123)) } ``` >先后输出如下 123456[qqq %!s(int=123)]%!d(MISSING) 123456qqq123 >不定参数方法的在参数传入的时候,应该类似传一个数组进去?大约应该是要参数压栈len([])次? >貌似Java和Go都有这样的问题(我也就会这两...阅读全文