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

请问golang 如何解析值带有[]数组类型的JSON

目前有一段数据结构是这样的。 我想把它赋值给一个变量,比如变量 data,然后能够通过data["code"]这种形式来获取它里面的code字段值。 原始数据里的值有[]类型,一直报这个错误:syntax error: unexpected comma, expecting type, 请求各位大神支招 ```json { "code": 200, "msg": [], "data": { "msg": "错误信息", "code": "1", }, } ``...阅读全文

Golang菜鸟教程-学习笔记-Day2

Golang菜鸟教程-学习笔记-Day2 大纲 常量 常量 常量在运行时,不会被修改 常量中的数据类型可以是布尔型,数字型,字符串类型 常见的定义形式 const indetifier [type] = value 常量的应用 package main import "fmt" func main() { const LENGTH int = 10 const WIDTH int = 5 var area int const a,b,c = 1, false, "str" //多重赋值 area = LENGTH * WIDTH fmt.Printf("area is %d\n", area) println(a,b,c) fmt.Println(a,b,c) } 常量作为枚举 packag...阅读全文

博文 2019-01-29 00:34:43 笑吧小鸟

golang 无缓冲 chan

package main import ( "fmt" ) var c = make(chan int) var str string func ready() { str = "abc" fmt.Println("ready1") <-c //get fmt.Println("ready2") } func main() { go ready() c <- 1 //put fmt.Println(str) } ready1 ready2//ready2在abc前 是因为调度,没有必然关系 abc 1.对于非缓冲通道: “从通道接收数据”的操作 一定会在 “向通道发送数据”的操作完成前发生。 2.对于缓冲通道: “向通道发送数据”的操作 一定会在 “从通道接收数据”的操作完成前发生...阅读全文

博文 2014-10-04 19:27:03 咖啡伴侣

Golang 中迭代读取 channel

欢迎再次来到我的 Go 语言私人教学课堂,今天我们的主题是,我曾经很难理解的 ( 还好现在已经理解了 ):在 Go 程中迭代读取 `channels`。 在开始之前,让我们先回忆一下。我们都知道,一个 Go 程的存活周期是建立在 main 进程之上的,举个例子: ```go package main import "fmt" func main() { go func() { fmt.Println("hello there") }() } ``` [点我运行](https://play.golang.org/p/cbczlMV4_0p) 只有极低的几率你才有可能看到 `fmt.Println` 打印的信息,因为有很大几率 `main()` 函数会在打印执行前就结束。 我们同样知道一个[规范...阅读全文

博文 2019-03-10 19:44:22 CNbluer

使用beengo的疑问,bee创建api,当数据库某一个字段有外键约束时,创建后的字段类型变成了约束的结构体类型,查询结果也返回整个结构体的字段类型

![1.png](http://studygolang.qiniudn.com/161013/9d4bedf67b595a3463cb4974dba5c138.png) Go中返回的json结果:![2.png](http://studygolang.qiniudn.com/161013/735f59d10cf9a9bbafa6cd4bf11669b7.png)、 Java中返回的json结果: ![3.png](http://studygolang.qiniudn.com/161013/78e54f8e8002d343522e64cf55e4fc59.png...阅读全文

解读阿里云NEXT ECS发布会, 阿里云的基础设施有多牛?

8月9日下午,阿里云发布了面向企业的全新一代Ecs产品线,正式宣布面向客户提供高性能,稳定,价格合理的企业级云服务器产品。 在现场,强悍的基础设施是阿里云产品总监,资深专家蒋林泉解读的重点内容之一。众所周知,云服务器的稳定性,很大一部分取决于数据中心的稳定性,在日常企业应用中,因为数据中心不稳定发生的问题比比皆是。 那么,阿里云的数据中心,相比起其他云计算厂商的数据中心,有什么样的不同, 在发布会前夕,我们实地走访了阿里云华北三数据中心,看能否找到答案。 阿里云华北三数据中心 在蒋林泉看来,数据中心最大的敌人之一是断电,而阿里云的数据中心采用双向独立市电引入,机架服务器AB路供电这样的双路保障,让数据...阅读全文

客户端地理位置服务 Js-geolocation

Js-geolocation 是一个 Go 开发的,使用谷歌服务的客户端地理位置服务。地理位置数据库是由 Google 维护,非常可靠。

{
    "city":"cluj-napoca",
    "cityLatLong":{
        "lat":46.777248,
        "long":23.59989
    },
    "country":"RO",
    "region":"cj"
}阅读全文

深度分析:高频交易软件在硬件是怎么架构的?

首先,高频交易不一定是套利算法。事实上HFT做的最多的业务是做市(market making),可以是把商品从一个交易所倒卖到另一个交易所,也可以是在同一个交易所内部提供某种商品的流动性。这两种方式的共同点都是让人们可以特定地点买到本来买不到的商品,所以本身就是有价值的,收服务费就可以盈利。   二,延迟和流量是不同的概念。低延迟不等于高数据量,事实上大部分时间交易数据流量并不大,一个market一天最多也就几个GB。但HFT系统需要在流量高峰时也能快速响应,所以更看重延迟。这也是HFT系统和互联网系统最大的区别所在,HFT系统的精髓在于把单机的软硬件系统的性能发挥到极致,而不是像互联网那样强调高负载和延展性,动辄用几千台机器搭集群的做法在这里是不适用的。用互联网系统的性能指标来认知H...阅读全文

<8> go channel 通信通道

go中最重要的一种通信通道就是channel 1.给一个 nil channel 发送数据,造成永远阻塞 2.从一个 nil channel 接收数据,造成永远阻塞 3.给一个已经关闭的 channel 发送数据,引起 panic 4.从一个已经关闭的 channel 接收数据,立即返回一个零值 package main import "fmt" // 此channel没有设置缓存,将被阻塞,所以都是执行default func main() { messages := make(chan string) signals := make(chan bool) select { case msg := <-messages: fmt.Println("received message", ms...阅读全文

自定义协议/解决tcp粘包问题(golang版本)

Tcp/Udp介绍 Tcp是字节流协议, 数据传输像流水一样没有边界, 那么对等方在一次数据读取后,无法分辨读取是一个消息还是多个,或者是不足一个, 那么对等方拿到"残缺"消息就不知道如何处理. Udp是基于消息的传输服务,每个消息就是一个报文,是有边界的,对等方每次接收都是一个完整的消息.这样就需要我们在应用层,自己来区分. 粘包是如何出现的? 用户进程write消息, 但内核缓存区不足以容乃这个完整的消息, 一个消息分多次发送出去, 接收的时候就可能一个消息分多次接收 Tcp的报文段有大小限制(MSS) IP层最大传输单元(MTU), 会对包进行分片, 其他, Tcp流量控制, 拥塞控制 一般有三种常见的方式 1. 定长消息 发送端和接收端约定消息长度, 缺点: 消息很短时, 效率很低,...阅读全文

博文 2018-11-17 14:34:43 weiwenwang

go revel在windows下的静态资源请求变成了下载

能请教一个问题么。revel在windows 8上,静态资源的请求, 比如http://localhost:9000/public/css/main.css。 在浏览器里打开,变成了下载。。 在linux和mac上是正确的。 routes里是这么配的: GET /public/*filepath Static.Serve("public") 之前我在win7上跑的时候也是正常的。后来换了个win8的,就跪了。。 ...阅读全文

解读阿里云NEXT ECS发布会,阿里云的基础设施有多牛

8月9日下午,阿里云发布了面向企业的全新一代Ecs产品线,正式宣布面向客户提供高性能,稳定,价格合理的企业级云服务器产品。 在现场,强悍的基础设施是阿里云产品总监,资深专家蒋林泉解读的重点内容之一。众所周知,云服务器的稳定性,很大一部分取决于数据中心的稳定性,在日常企业应用中,因为数据中心不稳定发生的问题比比皆是。 那么,阿里云的数据中心,相比起其他云计算厂商的数据中心,有什么样的不同, 在发布会前夕,我们实地走访了阿里云华北三数据中心,看能否找到答案。 阿里云华北三数据中心 在蒋林泉看来,数据中心最大的敌人之一是断电,而阿里云的数据中心采用双向独立市电引入,机架服务器AB路供电这样的双路保障,让数据...阅读全文

Go小技巧(一)— 获取channel属性

概述 这里一个介绍一个方法,可以在不取channel里的数据的前提下,查看channel是否关闭,是否阻塞,缓冲大小,通道内当前缓冲数据量等。 在这里需要了解一下golang的内存模型,然后通过指针取出相应的值。 channel的结构体在chan.go中: type hchan struct { qcount uint // total data in the queue dataqsiz uint // size of the circular queue buf unsafe.Pointer // points to an array of dataqsiz elements elemsize uint16 closed uint32 //... 以下字段没有用上,先省略 } 从上面可以...阅读全文

一个TCP长连接设备管理后台工程(一)

概述 这个项目最初只是用来进行一个简单的协议测试用的,而且是一个纯粹的后端命令行工程。只是后面想着只有命令行,操作也不太方便,于是便有了添加一个ui的想法。 golang项目要配ui,最佳的还是配一个前端界面。而我本人并非前端出生,js功底太差,所以就想着用vue了。而且作为一个技术人员,ui界面设计也比较差,所以就打算找一个现成的ui框架来用,尝试了ant designer和iview后,决定使用iview来实现。 这个工程采用前后端分离设计: 后端采用golang语言,web框架采用gin,数据库采用postgresql,并使用xorm来简化数据库操作。使用jwt来进行权限控制。日志库采用logrus。 前端基本就是vue的生态环境,主体采用vue,ui采用iview,路由使用vur-r...阅读全文

博文 2019-12-24 12:32:41 qiuzhiqian

千万级消息设计-思考(一)

说明 第一次写,也不知道写成什么样,喜欢的给个赞,不喜欢的给我留言。—— 蚂蚁爬树不怕高,有心学习不怕老。 场景 消息对于用户和平台来说,就是平台和用户之间的桥梁。特别是将消息看的很重的平台。 查询消息记录返回,响应时间问题? 现在都流行消息个数展示,未读消息个数问题?某某平台改变,小公司都要忙活了,忙坏了产品,累死了开发... 上面的两个看似简单的问题,在特定的场合,会给平台带来严重的结果,下面谈谈两种特殊的场合。 场合 1.用户到百万时,数据量到千万级后; 2.已经满足第一个条件后,平台再来几个推广活动。用户同时上线,参加活动会给用户发消息的时候(平台对用户进行推送消息,进行促销时,参加活动,活动奖励等使用消息通知的。 引发的问题 数据量过大时,查询速度变慢,导致数据库吃不消; 并发量高...阅读全文

博文 2018-06-10 10:34:37 antyiwei

Golang调用TiDB

1. 连接操作## db, err := sql.Open("mysql", "root:@tcp(10.10.144.13:4000)/tmpdb?charset=utf8") 2. 建数据库## 3. Insert操作## db, err := sql.Open("mysql", "root:@tcp(10.10.144.13:4000)/tmpdb?charset=utf8") checkErr(err) stmt, err := db.Prepare(`INSERT tmpdb.index (TXID,BLOCKNUM,OFFSET) values (?,?,?)`) checkErr(err) res, err := stmt.Exec("aaa", 1, 1) checkErr(...阅读全文

博文 2018-08-28 15:35:17 Xiao_Zhang

android开发中有哪些内存优化方法?

在android开发中,Process使用的内存是有限的,一旦超出了限定,程序就会跳异常。那这个问题如何避免呢?小编搜罗了一些比较好的方法,希望可以给大家一个借鉴吧。 1、不要Memory Leak 对于OOM,其实最重要的是注意不要Memory Leak。而Memory Leak是会有多个方面会引起的,比如Drawable, RemoteViews, Receiver, Cursor,InputStream, MediaPlayer等,此外,如果使用JNI也会因为C语言或C++的代码导致Memory Leak。 除了Memory Leak,大数据量的操作也会导致OOM,比如之前其他回答提到的Bitmap,还有ListAdapter,如果在getView时处理不当,也很容...阅读全文

[自助建站]模板渲染的三次革命

为啥想写这篇文章呢?培养自己一个良好的学习习惯:多总结 再以一个参与者的角度,总结一下我们渲染模板的心酸路程。 使用Vue渲染模板 开发前期,为了快速开发,编辑器和渲染使用同一套代码。所以决定渲染也使用Vue! SEO问题由后端单独写一个程序。 开发初步完成,测试环境下,主管发现这套方案行不通 原因如下: 百度等爬虫会对比爬虫抓到的和用户真实看到的,如果不一致百度就会认为这是在欺骗爬虫,百度会有处罚,不利于seo; 一些爬虫不会有指定的UA, 如微信 钉钉他们的爬虫就和正常人访问一样,这个时候就没办法区分爬虫和人了,就会出现微信和爬虫抓取不到数据的情况。 接着进入了渲染模板的第二次革命! nuxt. js渲染 这个在编辑器开发的代码上 改动的很少,SEO也不需要单独一个程序,感觉没有什么缺点...阅读全文

博文 2020-02-10 23:32:50 merrylmr

Go (Golang) 数据帧 gota

This is an initial implementation of DataFrames for the Go programming language (Golang). This is still at a very early stage of development and changes to the API are to be expected.  _Use at your own risk_ . ## What is a DataFrame The term DataFrame typically refers to a tabular dataset that can be viewed as a two dimensional table. Often the ...阅读全文

开源项目 2016-09-16 16:00:14 kniren

参考leveldb的cache实现

前言 对LevelDB比较了解应该知道其中一块cache实现:LRU Cache是采用双向链表 + HashTable,其中HashTable是为了解决双向链表的查找性能缺陷才引入的。接下来看一下采用golang如何实现LRU Cache。 实现 1、定义cache接口【thread-safe的cache】 import ( "io" ) // 参考:https://sourcegraph.com/github.com/google/leveldb/-/blob/include/leveldb/cache.h type Cache interface{ // 在multiple clients下共享相同的cache来划分key空间 // 当启动是会被分配一个新id NewId() uint6...阅读全文

博文 2018-09-26 18:34:44 一只躺在夕阳下的koala

C/Golang中的值传递和指针传递

-------------------------golang---------------------------------------------- package main import "fmt" func A(m int, n []int) { m = 100 n[0] = 99 fmt.Printf("After : &m=%p,&n=%p,n=%p\n", &m, &n, n) fmt.Printf(" m=%d,n=%v\n", m, n) } func main() { m := 300 n := []int{1, 2, 3} fmt.Printf("-----------origin--------------------\n") fmt.Printf("Befter ...阅读全文

GO 1.9 安全MAP 问题 不知道是不是这个 BUG 求解答为什么

我QQ:29295842 有知道告诉我下 GO 1.9 安全MAP 问题 不知道是不是这个 BUG 求解答为什么 ``` package main import ( "fmt" "sync" ) var ( map_list sync.Map //广告配置信息 wgx sync.WaitGroup // ) func map_add(id string, rows_map map[string]interface{}) { //添加数据 map_list.Store(id, rows_map) } func map_revise(id string, rows_map map[strin...阅读全文

4种编程语言基本数据类型及其取值范围整理(C++,Java,Python,Go)

1 C++ C++定义的基本类型包括算术类型和void类型。算术类型分为整型(包括字符和布尔型)和浮点型,如下表所示: C++11新增了char16_t,char32_t(最小分别为16、32位的Unicode字符型),long long(最小为64位的长整形)3种内置类型。 对于32位平台,int类型和long类型通常字长是相同的,占32位。 可以用以下语句来测试各种类型所占字节数: std::cout <阅读全文

博文 2015-06-17 23:01:36 dragon_dream

golang加载css和js

├── main.go ├── static │ ├── css │ │ └── main.css │ └── js │ └── main.js └── view └── index.html 若有如上目录结构 // main.go func main() { http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) // 启动静态文件服务 // ... }