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

Golang数据类型和变量

数据类型 先来介绍一下Golang的数据类型。 布尔型 bool类型代表逻辑值,有真值true和假值false两种取值。 整数类型 整数类型有如下几种,这些整数都是有符号的类型,它们的无符号版本是类型名前面添加u,例如uint32。 类型 长度 int8 1字节 int16 2字节 int32 4字节 int64 8字节 除此以外,还有比较特殊的几种类型。 类型 长度 备注 byte 1字节 是int8的别名 int 和系统有关 有符号整数 uint 和系统有关 无符号整数 uintptr 和系统有关 指针类型 rune 4字节 是int32的别名,代表Unicode代码点 浮点数类型 有两种浮点数,单精度float32和双精度float64,类似于Java语言中的float和double。...阅读全文

博文 2017-06-01 14:07:30 乐百川

基于websocket单台机器支持百万连接分布式聊天(IM)系统

本文将介绍如何实现一个基于websocket分布式聊天(IM)系统。 使用golang实现websocket通讯,单机可以支持百万连接,使用gin框架、nginx负载、可以水平部署、程序内部相互通讯、使用grpc通讯协议。 本文内容比较长,如果直接想clone项目体验直接进入[项目体验](https://github.com/link1st/gowebsocket) [goWebSocket项目下载](https://github.com/link1st/gowebsocket) ,文本从介绍webSocket是什么开始,然后开始介绍这个项目,以及在Nginx中配置域名做webSocket的转发,然后介绍如何搭建一个分布式系统。 ## 目录 * [1、项目说明](#1项目说明) * [1.1...阅读全文

博文 2019-08-14 18:07:58 link1st

golang web程序开机自动启动,并隐藏cmd窗口

如果一个服务器有10个golang的web,每一个都显示一个cmd窗口的话,会很难看,解决如下: 1)go build 你的web 生成一个exe文件 例如 我的项目叫 "myweb",那么我需要在我的项目根目录上面打开cmd,执行一条命令就可以了: go build myweb .就会生成一个myweb.exe文件 2)制作bat文件 通过bat文件启动该exe文件: 新建一个空bat文件,把上一步生成的myweb.exe的绝对路径添加到bat文件中,这样双击bat文件就能启动myweb.exe文件了 此时,会有一个cmd窗口弹出,很不好看,如果我们想让myweb.exe后台运行,只需要在bat文件最顶部加入以下代码: [plain] view plaincopyprint? @echo ...阅读全文

博文 2015-06-17 20:05:15 chengmodelong

一人耗时 2 年,收集 2000 多万数据,创建了一个提供免费翻译搜索的网站

> 作为小微开发者,难以支付高昂的翻译费用,在线翻译又难以满足精度,所以想通过复用高质量的翻译实例进行软件内容翻译,我花了两年时间收集了2000 多万条移动 app 的翻译数据,将它们做成了一个搜索网站,期望能帮助小微开发者以更低的成本更好的质量完成软件或者网页的国际化。 #### i18n 多语言语料搜索引擎 - 网址:[https://i18ns.com](https://i18ns.com/) - 功能:支持 11 国语言搜索,包括:中文、英文、西班牙文、葡萄牙文等语言。有一千多种语言数据,超 2000 多万条数据,免费提供搜索服务。 - 详细介绍: <https://i18ns.com/help.html> - 中文搜索地址:[http...阅读全文

使用golang读取StarDict 词典idx文件并按行输出

StarDict 词典idx文件格式: 每一个条目在单词列表中包含陆续三个域: word_str; // a utf-8 string terminated by '\0'. // 一个 utf-8 编码字符串,以 '\0' 终止符结束。word_str 的长度将是小于 256 的 word_data_offset; // word data's offset in .dict file // 单词数据在 .dict 文件中的偏移, //If the version is "3.0.0" and "idxoffsetbits=64", //word_data_offset will be 64-bits unsigned number in network byte order. word_...阅读全文

博文 2015-06-18 17:04:37 piaoyaofenfanl

golangxApi Manager-哆啦接口管理平台

#### XAPI MANAGER -专业实用的开源接口管理平台,为程序开发者提供一个灵活,方便,快捷的API管理工具,让API管理变的更加清晰、明朗。 基于golang开发的V3版本已上线,欢迎大家使用,也欢迎大家加入QQ交流群(623709829),< atarget="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=d83394f78622527ea525d1d1bc5dca2e6aa8292ca2f05a04c46d172ac2180f29">xApi Manager阅读全文

优秀跨平台Redis可视化客户端工—RedisViewer

自荐RedisViewer一个有情怀的跨平台Redis可视化客户端工具 感谢头条小哥的精彩推广 — 最美分享Coder 介绍 在以往的文章中曾经介绍过几款Redis的可视化工具,在笔者的印象中Redis至今没有一款非常专业的可视化管理客户端,就算之前介绍过的几款也是差强人意,有些时候满足不了我们的需求,而今天本文要介绍的是另一款值得推荐的Redis可视化客户端,以下通过截图的方式来展示这款软件! 已支持Windows、MacOS、Linux,方便不同平台开发者们使用! 本软件出自@可乐onefineday之手。 技术栈 UI: electron、vue、elenentui 服务: springboot 、webflux 、mybatis 、mapper PS: 现阶段服务JVM使用openj...阅读全文

博文 2019-10-22 23:33:12 aside section._1OhGeD

Go语言中的常量

## 1 概述 常量,一经定义不可更改的量。功能角度看,当出现不需要被更改的数据时,应该使用常量进行存储,例如圆周率。从语法的角度看,使用常量可以保证数据,在整个运行期间内,不会被更改。例如当前处理器的架构类型,可以保证不被更改。 语法如下 ## 2 定义单个常量 const 常量名 <可选的类型> = 常量值 ``` const c1 int = 1000 ``` > Go语言中,标识符(常量名)是否大小写,取决于是否需要在导出时被识别。 常量的值仅仅支持,基础类型,字符串,字符,整型,浮点,布尔。 ## 3 类型推导 类型可以通过值推导出来,大多数情况可以省略类型,例如 ``` const c2 = 1000 ``` 除非你想使用例如,int8, byte,float32这些非默认类型时...阅读全文

博文 2018-10-30 21:58:47 hanzkering

键-文件存储系统weedfs

2012-12-31 键-文件存储系统weedfs weedfs 是跟据facebook的一篇论文 用go语言实现的key-file存储系统。 论文中facebook面临海量的photo存储,数据特点是一次写,读频繁,无修改,很少删除。 分析基于POSIX系统在此应用场景中主要的问题是元信息存储在磁盘,读元信息的磁盘IO成为性能瓶颈-- 第一次(可能是多次)读盘将文件名转为i结点,第二次读盘读入i结点,第三次读盘才是读数据。 设计目标: 高吞吐低延时 元信息全部存储在内存,避免多次的磁盘IO 容错 简单 facebook的原始设计 浏览器请求被重定向到CDN,CDN中如果缓存了该图片则直接返回,否则查询Photo存储服务器。 Photo存储服务器是用NFS搞的,他们改了内核做了个文件描述符的...阅读全文

博文 2015-03-16 11:50:54 zenlife

区块链数据协议层SCRY.INFO

Scry.info是区块链开源数据协议层,实现真实数据的存储,验证,共享,分析和交易。 利用Scry.info内置智能合约,对跨行业资源的分布式用户提供集群智能数据验证,并以Scry智能合约的形式在Scry平台提供调用、工具、分享和交易。 Scry.info还提供对市场端客户与开发者提供对特定行业/事件发起智能合约协议,应用于各种商业数据场景,例如体育,娱乐,农业,金融市场等的民调或交易市场。 通过区块链提供数据交换的SDK,让开发者可以快速方便的开发DAPP应用。 **主要包含这些内容**:数据加解密;签名;智能合约;事件通知;数据存储接口;数据获取与查询;数字货币支付;第三方App支付接口等。 **过程如下:** 数据提供者通过SDK写入数据及元数据(数据包含静态数据、动态数据,...阅读全文

golang实现对mysql数据库的操作

一、创建表格 marksql := "create table mark (id int(20) primary key auto_increment,markname char(50)," + "mlongitude float,mlatitude float,mdescribe char(255),mtype int,creattime char(50),mvalue float );" smt, err := db.Db.Prepare(marksql) checkErr(err) smt.Exec() 二、创建外键 //定义好友fk1外键 idx_userid := "alter table user add index idx_userid(uid);" smt, err = db...阅读全文

博文 2016-03-05 14:00:02 binghunwangcong

B站日志系统的前世今生

作者简介王翔宇Bilibili资深运维研发工程师。曾就职于百度、饿了么,2017年加入B站,负责B站日志平台的设计和开发工作。B站的日志系统(Billions)从2017年5月份开始建设,基于elastic stack,面向全站提供统一的日志采集、检索、监控服务。目前集群规模20台机器,接入业务200+,单日日志量10T+。借此机会跟大家分享一些B站在日志系统的建设、演进以及优化的经历。由于经验尚少,抛砖引玉,欢迎大家一起交流讨论。文章主要分为三个部分:原有日志系统,现有系统演进,未来的展望。原有日志系统在Billions之前,B站内部并没有统一的日志平台,基本是业务之间各自为战,既有基于ELK的比较前瞻的方式,又有服务器上使用tail/grep比较基本原始的方式,水平参差不齐。在了解各个产...阅读全文

博文 2017-10-21 08:06:41 王翔宇

golang导出Excel表格

设置样式: package main import ( "github.com/tealeg/xlsx" "fmt" ) func main() { var file *xlsx.File var sheet *xlsx.Sheet var row *xlsx.Row var cell *xlsx.Cell var err error style := xlsx.NewStyle() fill := *xlsx.NewFill("solid", "00FF0000", "FF000000") font := *xlsx.NewFont(20, "Verdana") border := *xlsx.NewBorder("thin", "thin", "thin", "thin") style....阅读全文

博文 2018-09-05 13:30:01 zhzhlong

apifaker 开发记

最近在准备毕业设计,虽然为 Android 项目,但还是需要一些后端支持,所以我就想能不能有一种方便的方式开发后端 api 的方式。 在之前 Rails 开发中,养成的了“急躁”的好习惯,转到 Go 后,明显感觉思维的转变,Go 的思维方式相对 Rails 来说,更注重正交性,清晰度,KISS。 所以开发之前,我明确了这个项目的定位: 1. 能快速开启一个符合 Restful 原则的 api 服务器。 2. 实现 `http.Helper` 接口,能组合别的路由,保证扩展性。 3. 用 json 文件,不用数据库,降低复杂度,能回写到文件,保证数据一致性。 4. 能实现简单的数据验证。 然后,决定了主要的 struct ApiFaker 的主要成员变量及其对外接...阅读全文

使用go解析二进制tcp数据包

tcp全名是传输控制协议,tcp协议在ip协议基础上增加了数据包完整性检查等保证传输完整性的机制,使其在现在的数据领域得到了广泛的应用 按照下面的步骤可以快速了解tcp数据包中包含的信息 tcp协议rfc文档解读 rfc参考:tools.ietf.org/html/rfc793 核心tcp数据包结构如下 可以看到tcp报文由十余个字段组成,最后一个data字段代表了本次tcp数据报文承载的数据,这个数据一般是应用层的数据,比如http报文数据就是在这个tcp包的data字段中 其中常用字段如下 字段 作用 Source Port 发包机器的端口号 Destination Port 收包机器的端口号 Sequence Number 包编号 Acknowledgment Number 确认包号 ...阅读全文

博文 2019-12-30 15:34:39 苏小林

golang非阻塞锁的简单实现

对于复杂类型如 container/list ,需要在所有读写操作上使用 sync.mutex 互斥锁以保证数据一致性,互斥锁并发情况下,Lock 操作会阻塞,一直等到其他线程Unlock,但是有的时候因为有一个耗时比较长的操作一直占用锁,我们想让其他线程不在Lock上一直阻塞,而是直接走其他业务流程。 举一个很简单的场景:在多人并发抽奖环节,为了保证不出现负库存,我们可以通过竞争锁,第一个获取锁的人可能中奖,而其他并发过来的请求获取锁失败(而不是一直阻塞在Lock()),直接当做未中奖处理。 思考了一下,有一个思路,我们可以用两道锁,第一道锁用来判断锁状态,第二道锁才是真正的耗时任务用的锁。 直接上代码 type NBLocker struct{ l1 sync.Mutex l2 sync...阅读全文

博文 2017-04-04 05:00:47 吾爱

C#与golang常用数据类型对应关系

C# golang proto 范围 sbyte int8 int32 -128->127 short int16 int32 -32768->32767 int int32 int32 -2 147 483 648->2 147 483 647 long int64 int64 -9 223 372 036 854 775 808->9 223 372 036 854 775 807 byte unit8或byte int32 0->255 ushort unit16 uint32 0->65535 uint unit32 uint32 0->4 294 967 295 ulong unit64 uint64 0->18 446 744 073 709 551 615 decimal fl...阅读全文

博文 2015-09-25 03:00:00 ha666

chan中传递map数据,传递的是引用

写个demo测试一下,channel中传递的是数据的拷贝,还是引用? 预期:传递的是引用类型 package main import ( "fmt" ) func main() { var sliceChan chan [2]map[string]int = make(chan [2]map[string]int, 2) //construct array m1 := map[string]int{ "rows":12, } m2 := map[string]int{ "columns":10, } bulk := [2]map[string]int{m1, m2} //directly read then sliceChan <- bulk e := <-sliceChan fmt.Pri...阅读全文

博文 2018-03-25 16:34:38 欧阳少辰

初识CDN

## 什么是`CDN`? * `CDN`的全称`Content Delivery Network`,即 内容分发网络. * 简单来讲`CDN`是用户到源服务器之间的一层缓存层, 缓存一些静态资源, 静态的web页面, 流媒体等, 提高访问速度, 降低源服务器负载(网络资源, 硬件资源), 集体抗`D.D.O.S`(高可用)。 ## 一个简陋`CDN`模型 * `Nginx`web反向代理服务器, 一般用于web服务器负载均衡, 具有静态资源缓存的功能, 此处我们重点利用这个功能去搭建我们的`CDN`。 * ![cnd-nginx.png](https://static.studygolang.com/200603/e8c28c199a4893a5f4edf36bd9b4152a.png) *...阅读全文

博文 2020-06-03 11:17:50 loop_0

golang 结构体笔记

一、概念 结构体是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体。每个值称为结构体的成员。 二、结构体声明及使用 // 声明结构体 type Employee struct { ID int Name string } func main() { // 结构体实例化 emp := Employee{ID: 1, Name: "Frod"} // 匿名字段实例化 emp2 := Employee{1, "Frod2"} fmt.Println(emp) fmt.Println(emp2) } 三、聚合结构 golang没有继承的概念, 推崇的是类聚合 type Address struct { Province string City string Detail string } ...阅读全文

博文 2016-02-01 17:00:00 loveyx

Binding 组件

https://github.com/smartwalle/binding ## Binding Binding 是一个利用 Golang 的反射机制,将 map 对象的数据映射到 struct 的工具包,可用于将 HTTP 请求参数映射到指定的 struct。 业界关于将 HTTP 参数绑定到 struct 的工具库虽然已经有很多,但是大多都只是对数据进行简单的映射,缺少灵活的控制,本工具来自于实践,或者也适用于你。 #### 例子 ``` import ( "fmt" "testing" ) type Human struct { Name string `form:"name...阅读全文

golang通过socket与java通讯

作为计算机专业的学生(虽然很水),直到今天还有二年级的师弟问我计算机专业学计算机网路基础究竟有什么作用?项目中是否只能用一门编程语言?……解释了半天,没能解释明白(原谅计算机专业读久了,口才真的变烂了),于是写下这篇文章。 本文主要是实现echo服务器/客户端,服务器采用golang编写,客户端采用java编写(别问我为什么不用C++,如果会早就用了),本文的目的是为了说明,现代编程中,网络是十分重要的,另外一个项目中,不仅仅只能用一门编程语言,由于本人也是入门,写的不好地方,望指正,谢谢。有不懂的,可评论,下面上代码: //server.go //客户端,主要是在9000端口创建监听程序,用于接受客户端连接 package main import ( "bufio" "fmt" "log"...阅读全文

博文 2015-12-12 01:00:10 u013025612

goroutine 的同步(第二部分)

> Channel 通信 第一部分介绍了发送与接收操作之间最直观的顺序关系: > *向一个 Channel 中发送数据先于接收数据。* 于是,我们能够控制分布于两个 goroutine 中的操作的顺序。 ```go var v int var wg sync.WaitGroup wg.Add(2) ch := make(chan int) go func() { v = 1 ch <- 1 wg.Done() }() go func() { <-ch fmt.Println(v) wg.Done() }() wg.Wait() ``` (为了清晰,main 函数的定义和 import 语句被省略) 操作的顺序如下(*x* → *y* 代表 *x* 发生在 *y* 之前): `v = 1` →...阅读全文

博文 2018-08-28 08:54:34 krystollia

关于以time.Time为基准取出数据库中对应row的问题

o := orm.NewOrm() qs := o.QueryTable("task") err := qs.Filter("date",date ).One(task) 大致代码如上 背景: 1.用的sqlite3 2.存入的“date”数据项类型为time.Time,date同样 问题: 1.存入时“date”数据由Local变成UTC 2.比对时date的内容丢失,本来应该为如: 2014-01-14 09:09:09.3244243 +0000 UTC 变成了 2014-01-14 09:09:09 后面的丢失,导致数据无法比对取出。 这是怎么回事啊?请大神指教...阅读全文

Golang实现词频统计

本例使用golang实现词频统计。步骤: (1)从文件中读取一篇文章。 (2)统计词频,按单词出现的频率从大到小进行排序。 (3)写入到文件中。 注:任何非英文字母的符号均认为是单词分隔符(即等同于空格)。 效率:使用本程序统计一篇150W单词的文章,大约需要70ms. 1.核心代码: package wordtest import ( "bytes" "fmt" "io/ioutil" "os" "runtime" "sort" "strings" "time" ) //简单的词频统计任务 func CountTestBase(inputFilePath string, outputFilePath string) { //时间开始点 start := time.Now().UnixNan...阅读全文

博文 2015-06-17 20:03:47 books1958

go语言操作mysql范例(增删查改)

http://blog.csdn.net/jesseyoung/article/details/40398321 go语言连接mysql简介 go官方仅提供了database package,database package下有两个包sql,sql/driver。这两个包用来定义操作数据库的接口,这就保证了无论使用哪种数据库,他们的操作方式都是相同的。 但go官方并没有提供连接数据库的driver,如果要操作数据库,还需要第三方的driver 包,最常用的有: https://github.com/Go-SQL-Driver/MySQL支持database/sql,全部采用go写。 https://github.com/ziutek/mymysql 支持database/sql,也支持自定义...阅读全文

博文 2016-06-11 12:00:01 kungfupanda

关于Web编程异步模型的白日梦

早上刷牙,处于半睡状态。突然想起昨天晚上看到的那个 go-lang 的 MVC 框架,若使用 go func() 方式异步获取数据,应当是不错的。窃喜……梦醒…… 在地铁上被前前后后那些特种男女逼到车角,无奈。又想起早上那个白日梦,遂上网搜索了一番。得老赵的佳作一篇《F# 与ASP.NET(1):基于事件的异步模式与异步Action》。之前看过,由于对微软无爱,未能细品。今日一读,如醍醐灌顶,豁然开朗。 遂整理思路如下,以待后用。 在说异步模型之前,先说说最常见的同步模型吧。例如下面的 PHP 代码: // 获取数据 $userInfo = getUserInfo(); $newsList = getNewsList(); $topRateNewsList = getNewsList('DE...阅读全文

博文 2014-10-09 16:15:12 mikespook

任意数据类型切片 golang

package main import ( "fmt" . "strconv" ) type Element interface{} type List []Element type Person struct { name string age int } func (P Person) String() string { return "My name is " + P.name + " my age is " + Itoa(P.age) } var slice_1 = []string{"hello"} var map_1 = map[string]string{"city": "beijing", "name": "cs", "from": "usa"} func main() { ...阅读全文

博文 2015-06-17 20:18:50 yatere

阿里云造了个“隐身斗篷”,被Gartner点名了 !

熟悉《哈利波特》的同学一定对隐身斗篷如数家珍:它是一件能让人隐形的斗篷,永久有效,持续隐形,无论用什么咒语都不可破解,可谓是顶级安全神器。 你瞧: 如今,阿里云也为用户打造了一件世间罕见的“隐身斗篷”:基于Intel SGX(Software Guard Extensions )的“加密计算”。就在前几天,全球信息技术研究机构Gartner发布了2019年云安全技术成熟度曲线报告(Gartner, Hype Cycle for Cloud Security, 2019, Jay Heiser, SteveRiley, 23 July 2019),首次将机密计算(即加密计算)列入其中。阿里云作为亚太区第一个推出基于加密计算的云服务商,被Gartner认可为机密计算的典型云服务商。 2019年,...阅读全文

博文 2019-08-21 16:03:07 阿里云官网

直击DTCC2018 阿里数据库技术干货全面解析

摘要: DTCC2018将如约而至。阿里数据库的核心团队将亮相此会,并与国内数据库专业人士交流过去9年在数据库领域的经验。一起来看看在DTCC2018上阿里数据库团队都给你准备了哪些你最关心的主题吧。 如果你是一个技术人的话,就一定听过中国数据库技术大会(简称DTCC)。作为国内数据库及大数据领域规模最大、最受欢迎的技术交流盛会,云集了国内外顶尖专家,共同探讨MySQL、NoSQL、Oracle、缓存技术、云数据库、智能数据平台、大数据安全、大数据和开源、大数据创业、大数据深度学习等领域的前瞻性热点话题与技术。自2010年以来,迄今已成功举办了八届,累计参与人次达到20000+。 2018 年 5 月 10日,DTCC2018将如约而至。阿里数据库的核心团队将亮相此会,并与国内数...阅读全文

MySQL 亿级数据量水平分库实践

需求背景 水平拆分和垂直拆分一直是最常见的数据库优化方式,笔者所在的部门所使用的数据库一直是主从热备的架构,但数据量在一年前就已经破亿,并以飞快的增长速度不断增加。为了减小数据库的负担,提高数据库的效率,缩短查询时间,水平拆分的工作已经必不可免。 水平拆分带来的问题 而水平拆分必然会带来一些问题,例如原本依赖于数据库自增 id 的主键在分库的场景下,多个分库下 id 做不到全局唯一;引入了分布式事务的问题,如果同一个逻辑事务里,涉及的数据跨多个数据库实例,本地事务将不生效;需要将原本的源库做拆分迁移,如果数据量很大的情况下,不停机的数据迁移也将成为一个难点;引入了跨库聚合的问题,分库分表后,表之间的关联操作将受到限制,就无法 join 位于不同数据库实例的表,结果原本一次查询能够完成的业务,...阅读全文

博文 2019-09-02 10:32:45 Philomon

golang 中的 io/ioutil 包

几个函数方法 名称 作用 备注 ReadAll 读取数据,返回读到的字节 slice 1 ReadDir 读取一个目录,返回目录入口数组 []os.FileInfo, 2 ReadFile 读一个文件,返回文件内容(字节slice) 3 WriteFile 根据文件路径,写入字节slice 4 TempDir 在一个目录中创建指定前缀名的临时目录,返回新临时目录的路径 5 TempFile 在一个目录中创建指定前缀名的临时文件,返回 os.File 6 示例 ReadAll func ReadAll(r io.Reader) ([]byte, error) r := strings.NewReader("Go is a general-purpose language designed wi...阅读全文

博文 2017-07-09 06:03:51 中柠檬

为物联网而生:高性能时间序列数据库HiTSDB商业化首发!

摘要: 近日,阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。 近日,阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。 先跟大家聊一下什么叫时序数据。简单的说,就是时间上分布的一系列数值,关键字是数值,我们一般认为的时序数据是什么时间发生了什么事情,但是在时序数据这个领域里定义的时序数据全都是跟数值有关的。也就是说,如果只是一个带有时间戳的一条数据并不能叫做时序数据。举个例子,比如像我早上8点半上楼吃了个饭这条记录,相当于一个日志,这个本身不构成一个时序数据,但是如果某个餐厅早上8点...阅读全文

golang chan 发送接收测试数据

测试代码: package main import ( "fmt" "time" ) const ( num = 10000000 // 测试1千万次发送和接收 ) func main() { TestChan2() } func TestChan2() { st := time.Now().UnixNano() c := make(chan int) go func() { var n int for n = range c { } fmt.Printf("task TestChan2 cost %d \r\n", (time.Now().UnixNano()-st)/int64(time.Millisecond)) fmt.Printf("%d", n) }() for i := 0; ...阅读全文

博文 2015-06-20 03:00:01 ghj1976

Golang SQL Server 数据库 stmt使用

使用的包”code.google.com/p/odbc” 数据库连接语句 conn := "driver={SQL Server};SERVER=" + dataaddr + ";UID=" + user + ";PWD=" + pass + ";DATABASE=" + dataname Db, dberr = sql.Open("odbc", conn) 创建的Db 其实是一个连接池,每次操作数据库的时候都会创建一个与数据库的连接。所以若断网一会之后,再执行查询后连接断开 ,其实会自动重联的。 数据操作 1、查询 方法一:预编译 stmt, errs := Db.Prepare("select * from tbl where col=?") defer stmt.Close() row...阅读全文

博文 2016-02-06 11:00:02 xia_xing

golang之大端序、小端序

一、概述 字节序:字节在电脑中存放时的序列与输入/输出时的序列;也指的是存放多字节数据的字节(byte)的顺序,典型的情况是整数在内存中的存放方式和网络传输的传输顺序。 先看下基本概念: 1、大端模式(Big endian):将高序字节存储在起始地址(按照从低地址到高地址的顺序存放数据的高位字节到低位字节) 2、小端模式(Little endian):将低序字节存储在起始地址(按照从低地址到高地址的顺序存放据的低位字节到高位字节) 在计算机领域中,大小端序是跟硬件的体系结构有关的。 举个栗子:如一个 var a = 0x11223344,对于这个变量的最高字节为0x11,最低字节为0x44。假设在内存中分配地址如下(地址都是连续的) ... 0x0001 0x0002 0x0003 0x00...阅读全文

博文 2019-01-24 11:34:45 神奇的考拉

GO数据库

Golang 数据库操作 Golang 数据库 MySQL Golang支持DB操作位于database包下,支持基本CRUD操作、事务和Prepared Statement,本文以MySQL为例。 MySQL驱动安装 使用数据库之前,必须安装相关MySQL数据驱动[1],如果未安装驱动或者没有引入驱动库会报以下错误: failed to open database: sql: unknown driver "mysql" (forgotten import?) 安装golang mysql driver go get github.com/go-sql-driver/mysql 代码中还需注册数据库驱动,通过引入空白倒入[2]mysql包来完成 import( "database/sql"...阅读全文

博文 2016-06-15 09:00:00 zhangym

go interfate 赋值slice 等数据, 如果是引用类型数据,则一改改全部

func main(){ var str_slice = []string {"123"} var str_interface interface{} str_interface = str_slice fmt.Println(str_slice,str_interface) //输出 [123] [123] str_slice[0] = "963" fmt.Println(str_slice,str_interface) //输出 [963] [963] } go interfate 赋值slice 等数据, 如果是引用类型数据,则一改改全...阅读全文

博文 2014-10-04 19:26:34 984195889

请问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路供电这样的双路保障,让数据...阅读全文