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

GO语言的一些简单数据类型之间相互转换

在GO语言的使用过程中总会遇到一些类型之间相互转换的问题,做了一个简单的总结。只列出了几种易用的类型间的转换,如果用到其他类型间的数据类型格式转换,查看GO文档是很不错的选择。 strconv包实现了基本数据类型和其字符串表示的相互转换。 //string到int value_int,err:=strconv.Atoi(string) //int到string str:=strconv.Itoa(value_int) //string到int64 value_int64, err := strconv.ParseInt(string, 10, 64) //int64到string,需注意下面转换规定 //FormatInt returns the string representation ...阅读全文

博文 2015-06-23 23:02:19 qq_534019165

android初学者必知会的14个实战项目

在android学习中,很多android初学者都苦于不知道怎么找适合自己的开源项目练手,有时候就算找到一些小项目,但也不清楚具体如何下手,这对于迫切需要学习android的童鞋而言确实比较苦恼。今天小编就和大家扒一扒14个非常适合初学者学习、开发的小项目。 1、Openfire+Smack Android 即时通讯应用开发 2、android项目实战-汽车门户APP 3、android项目实战二:android类似大众点评网项目 4、Android蓝牙开发 5、android项目制作-简易版QQ 6、Android Launcher & Widget 7、Android 电话与短信应用 8、Android 定位技术...阅读全文

Golang实现红黑树

盼望已久的五一终于到来了!我一直在考虑要不要利用这几天时间好好睡上一觉,习惯成自然,宅也是如此。睡觉都觉得无聊的时候,就有了写点什么的念头。也借此机会提高一下写作能力,看看什么时候能写一部长篇小说。 用Golang实现红黑树算是一次尝试,毕竟工作环境没用到,不知道以后会不会用。自己也是看着玩,开阔一下思路。从我开始看Golang的doc到写这篇文章利用的是大概2周中的业余时间,所以Golang的语法掌握的还有欠缺;很多特性,例如高并发等都还没有测试,如文中出现错误或不合理的地方,请指正。 本文应用的基本逻辑参考自wiki的红黑树,依据golang的语言特性部分结构可能稍有改动。同时这篇文章里也加入了我在实现过程中的想法和实现时可能会遇到的问题。wiki上的红黑树中文版本,不过建议直接看英文版...阅读全文

博文 2016-05-03 14:00:03 happywjh666

从Go、Swift出发:语言的选择需谨慎

本文转自 : http://www.csdn.net/article/2014-12-09/2823025 摘要:无论是开源的Go,还是闭源的Swift,新的语言总是利弊一体。不过可以确定的是,新的语言给予程序员一些有用的支撑点。而对于开发者而言,不管你成长多少,你都会受制于你使用的根源语言,所以选择需谨慎。 Google于2009年第一次提出了Go的构思,Facebook在去年春天引入了Hack,随后不久Apple也发布了其Swift语言。 在 战争中,胜利者写历史书;在科技中,赢的公司都在写编程语言。互联是建立在开发标准和代码之上,但是社交网络和云计算领域受企业巨头控制,并且它们开始把 自己独一无二的印记烙在数字科技上——这是必然的,就像征服者威廉和他的诺曼人一样,大量新的词汇加入到英语...阅读全文

博文 2016-04-10 09:05:09 ftm-datablogs

安全地解析不受信任的文件格式Puffs

Puffs,全名为 Parsing Untrusted File Formats Safely ,是 Google 开源的一个用于特定领域的语言和库,可安全地解析不受信任的文件格式,包括图像、音频、视频、字体和压缩档案等。 与 C 语言不同,Puffs 对于缓冲区溢出、整数算术溢出和空指针解引用是非常安全的。Puff 和其他内存安全语言之间的主要区别在于,所有这些检查都是在编译时完成的,而不是在运行时完成的。 Puffs 旨在像 Go 或 Rust 一样生成安全的软件库,同时能像 C 一样快,可以在任何使用 C 库的地方使用。但需注意的是,Puffs 不是一种通用的编程语言,虽然在技术上可行,但似乎不值得去写一个专门的 Puffs 编译器出来...阅读全文

go 协程使用陷阱

golang 语言协程 协程中使用全局变量、局部变量、指针、map、切片等作为参数时需要注意,此变量的值变化问题。 与for 循环,搭配使用更需谨慎。 1、内置函数时直接使用局部变量,未进行参数传递 func main() { for i := 0; i < 100; i++ { go func() { fmt.Println(i) }() } } 运行效果 func main() { for i := 0; i < 100; i++ { go func(i int) { fmt.Println(i) }(i) } } 运行效果 2。地址传递的参数 type Per struct { name string bh int } func main() { p := &Per{} for i :...阅读全文

博文 2016-06-25 06:00:00 xia_xing

19年第41周:Go语言 微信小程序获取手机号 -加密数据解密算法-AES-128-CBC

一、简介 获取手机号 获取微信用户绑定的手机号,需先调用 wx.login 接口。 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发。 注意:目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。 二、参考官方Python示例复写Golang版本 NOTE: 微信官方没有给Golang版本,但给了C++,PHP,Node,Python版本。这里选用Python来作为参考 python版本和Golang版本对比 三、参考资料 微信小程序开发指南-获取手机号 微信小程序开发指南-加密数据解密算法-官方案例下...阅读全文

博文 2019-10-07 19:32:44 aside section ._1OhGeD

阿里云APP上线“备案刷脸核验”功能 网站备案时间大幅缩短

建过网站的人都知道,网站备案真实性核验环节花费的时间比较长,为贯彻国务院“放管服”改革要求,工业和信息化部及各省通信管理局自2016年起指导境内接入服务企业开展了APP备案试点工作,旨在满足网站备案真实性的前提下,解决广大用户对网站备案时效性的要求。近日,阿里云APP就正式上线了“备案刷脸核验”功能,网站备案客户可直接在APP上传相关资料,极大的缩短了网站备案时间。 ![1](https://gtms02.alicdn.com/tfs/TB1BkcrQFXXXXaNXFXXXXXXXXXX-487-868.jpg) 网站备案是指针对使用大陆节点服务器开办网站的用户,需要在服务器提供商处提交备案申请,阿里云作为工信部许可的接入服务企业,可以对有开办网站需求的用户提供备案支...阅读全文

protobuf 导入另一文件夹下的proto

环境: protobuf2 ,golang 项目test下 存放proto的目录结构 ---test // 项目根 ------ cs --- cs.proto ------ ss --- ss.proto cs.proto syntax = "proto2"; package cs; message Test{ optional string name = 1; } ss.proto syntax = "proto2"; package ss; import "test/cs/cs.proto"; message Test{ optional cs.Test cstest = 1; } ss.proto 文件引用 cs/cs.proto import 不允许使用相对路径Backslashe...阅读全文

博文 2020-04-23 10:32:51 yddeng

golang-mongodb范例

1 package main 2 3 import ( 4 "log" 5 6 "gopkg.in/mgo.v2" 7 "gopkg.in/mgo.v2/bson" 8 ) 9 10 type Address struct { 11 Address string 12 } 13 type Location struct { 14 Longitude float64 15 Latitude float64 16 } 17 18 type Person struct { 19 Id bson.ObjectId `bson:"_id"` 20 Name string 21 Age_Int int 22 Address []Address 23 Location Location 24 } 25 2...阅读全文

博文 2016-03-17 01:00:01 --xiaoyao--

Go 1.8 http graceful 体验

很高兴Go 1.8发布了,这是个值得庆祝的日子。 如何优雅的关闭http服务在Go Web开发中一直被提及和讨论的话题,今天Go 1.8的发布终于为我们带来了这个特性。 文档中是这样介绍的: func (srv *Server) Shutdown(ctx context.Context) error Shutdown 将无中断的关闭正在活跃的连接,然后平滑的停止服务。处理流程如下: 首先关闭所有的监听 然后关闭所有的空闲连接 然后无限期等待连接处理完毕转为空闲,并关闭 如果提供了 带有超时的Context,将在服务关闭前返回 Context的超时错误 需要注意的是,Shutdown 并不尝试关闭或者等待 hijacked连接,如 WebSockets。如果需要的话调用者需要分别处理诸如长连接...阅读全文

博文 2017-02-17 05:01:03 Coldstar

[翻译]编译器(8)-抽象语法树

文在此。 ————翻译分隔线———— 编译器(8)-抽象语法树 第一部分:介绍 第二部分:编译、转译和解释 第三部分:编译器设计概览 第四部分:语言设计概述 第五部分:Calc 1 语言规格说明书 第六部分:标识符 第七部分:扫描 在构建解析器之前,首先应当谈谈如何处理目标数据。 需要用某种抽象数据类型来保存所有需要解析的数据。树形数据结构很好的满足了我们的需求。这个树描述了编程语言的语法结构,它被很恰当的叫做抽象语法树(AST)。 AST 树形数据结构总是从一个根开始,我们的也是一样。通常,在一个成熟的编译器中,你通常会有一个代表包或程序的对象。在我们的例子中,我们只有一个文件,因此我们将有一个叫做 File 的对象。 这个对象的其他部分可以在我们的语法蓝图中找到。再次提醒,回顾我们创建语...阅读全文

博文 2014-10-09 16:20:23 mikespook

map嵌套map,每一层map都需要make初始化

package main import ( "fmt" ) // 注意,当map嵌套的时候,每一个map都需要初始化 func main() { var m map[int]map[int]string m = make(map[int]map[int]string) // 初始化 a, ok := m[2][1] if !ok { m[2] = make(map[int]string) //初始化内层的map } m[2][1] = "good" a, ok = m[2][1] fmt.Println(a) fmt.Println(ok) } ...阅读全文

[go语言]避免过度重构

golang-nuts上有人提了一个问题[1],询问怎么样把减少两个类似数据结构和算法的重复代码。简而言之,有两个struct:QuickFindSet和QuickUnionSet,它们各有Count, IsConnected, Find, Union等方法。他发现这两个struct的一些函数的实现是一样的,因此他希望能消除这些重复代码。 ? www.usr.cc 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 04...阅读全文

博文 2014-10-04 19:26:29 deansinaean

TODO:一不顺眼就换字体Go之代码篇

TODO:一不顺眼就换字体Go之代码篇 image包实现了一个基本的2D图像库,该包中包含基本的接口叫做image,这个里面包含color,这个将在image/color中描述;新增字体font,进行字体编辑。早在几年前Go image包出来的时候就有人实现了图片式水印处理,处理起来很方便,有兴趣的朋友可以用搜索引擎搜索一下。本文主要实现的功能是用Golang的image的font实现水印功能,实现了字体的大小、像素、坐标。有兴趣的朋友可以拷贝到本地测试看看。由于一些平台的代码兼容不好,所以本文代码以图片形式展现,需要的话可以联系我。 测试的原图: 打水印后的效果图: 经过多次测试,image/font并还没有实现类似中文象形文字(如日语,韩语,泰语)都是输出筐筐(如下图),希望Golang...阅读全文

博文 2016-11-27 17:00:06 OneTODO

go语言细节

数组与字符串为值类型,切片、映射、通道为值类型,赋值需注意。 1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main() { 8 //数组 9 a1 := [3]int{1, 2, 3} 10 a2 := a1 11 a2[0] = 2 12 fmt.Println(a1) //print: 1 2 3 13 fmt.Println(a2) //print: 2 2 3 14 // 字符串 15 s1 := "123" 16 s2 := s1 17 s2 = "223" 18 fmt.Println(s1) //print 123 19 fmt.Println(s2) //print 223 20 // 切片 21 slice1 := []...阅读全文

博文 2015-11-24 03:00:00 --xiaoyao--

位运算详解

位运算 Bitwise operation 前言 日常提出疑问,然后引出今天的下文: 如何在代码里不用 “+” 、“-” 实现加减法的操作? 接下来我就介绍一项一招制敌的技能 —— 位运算 正文 什么是位运算 程序中的所有数在计算机内存中都是以二进制的形式存储的。位运算(Bitwise operation)就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高。 在程序中使用位运算进行操作,会大大提高程序的性能。 位运算的本质 位运算是在二进制之间操作,粗略地说就是 0 和 1 之间的转换 位运算的基本操作 与运算 & 两个位都是 1 时,结果才为 1 1 & 1 = 1 1 & 0 = 0 100 & 001 = 0 100 & 101 = 100 或运算 | 两个位都是 0 时,...阅读全文

博文 2019-12-11 15:32:58 曲镇

go语言环境搭建

本文章讲解如何在Ubuntu 14.04 下配置Go语言(GO语言版本为 1.5)的开发环境。 第一步:安装相关环境组件 请在终端输入以下指令: sudo apt-get install build-essential 第二步:上传相关GO语言安装包至服务端 可使用Xftp或者winscp上传。上传后后解压到相关位置,需注意解压的用户权限。 第三步:配置Go语言环境变量 首先,使用任何文本编辑器打开 home 目录下的 .bashrc 文件 如果你不确定到底在哪里,在终端直接输入以下指令也可以: vim ~/.bashrc 然后进入文本编辑界面,请在文件的最后追加大致如下图内容: export GOROOT=GO语言解压的文件夹目录 export PATH=${PATH}:GO语言解压的文件...阅读全文

博文 2018-03-24 15:32:33 xie1xiao1jun

过年GO HOME

过年回家喽 设计一款产品真心不易,不打个几十个来回,敲不定一个方向,还好,所有的问题都会得到解决,团队协作才是取胜的关键所在~! 技术之路漫长而寂寞 转型之路曲折而难耐 问路在何方。不是在脚下,而是在胸前。 昨日之事不可留,今日之事多烦忧。 硬件软件都有规范与设计模式,都需要经验的打磨,产品中的历练,面面俱到是不可能了。迫切需要一种思维模式,来思考,迫切需要一种环境,在规范中成长,好的经验好的管理,抓质量,严谨而缜密的思考,何时才能想德国一样严谨,何时能像日本一样精细,最适合按键盘的力度是60克 都需要无数次的实验。何时,何时,何时。这才是我想要的环境,一个作为技术人员才会有的迫切需求。 -kunka 2016-02-0...阅读全文

golang

go需要的设置。 一:GOROOT 二:GOPATH $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn...阅读全文

博文 2016-02-18 21:00:03 faicm

golang安装ZMQ报错 macro: AC_LIBTOOL_WIN32_DLL

[root@VM_171_105_centos zeromq4-1-4.1.6]# ./autogen.sh autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I config autoreconf: configure.ac: tracing autoreconf: configure.ac: not using Libtool autoreconf: running: /usr/bin/autoconf --include=config --force configure.ac:62: error: pos...阅读全文

博文 2018-05-31 18:33:04 p至尊宝

[golang] json序列化时自动将id加密

对于有规则的数据索引,比如用户ID,商品ID,订单编号,很容易第三方直接遍历抓取资源。采用liamylian/json-hashids进行加密,可以有效避免这类情况发生。但因为是对等加密,需注意该加密算法并不安全,使用时需注意场景,详情请见hashids。 package main import( "fmt" "github.com/liamylian/json-hashids" "time" ) var json = jsonhashids.NewConfigWithHashIDs("abcdefg", 10) type Book struct { Id int `json:"id" hashids:"true"` // 这里要给id打上hashids的tag Name string `j...阅读全文

TODO:一不顺眼就换字体Go之代码篇

TODO:一不顺眼就换字体Go之代码篇image包实现了一个基本的2D图像库,该包中包含基本的接口叫做image,这个里面包含color,这个将在image/color中描述;新增字体font,进行字体编辑。早在几年前Go image包出来的时候就有人实现了图片式水印处理,处理起来很方便,有兴趣的朋友可以用搜索引擎搜索一下。本文主要实现的功能是用Golang的image的font实现水印功能,实现了字体的大小、像素、坐标。有兴趣的朋友可以拷贝到本地测试看看。由于一些平台的代码兼容不好,所以本文代码以图片形式展现,需要的话可以联系我。 测试的原图: 打水印后的效果图: 经过多次测试,image/font并还没有实现类似中文象形文字(如日语,韩语,泰语)都是输出筐筐(如下图),希望Golang官...阅读全文

博文 2017-02-10 15:50:41 OneTODO

go语言环境搭建

本文章讲解如何在Ubuntu 14.04 下配置Go语言(GO语言版本为 1.5)的开发环境。 第一步:安装相关环境组件 请在终端输入以下指令: sudo apt-get install build-essential 第二步:上传相关GO语言安装包至服务端 可使用Xftp或者winscp上传。上传后后解压到相关位置,需注意解压的用户权限。 第三步:配置Go语言环境变量 首先,使用任何文本编辑器打开 home 目录下的 .bashrc 文件 如果你不确定到底在哪里,在终端直接输入以下指令也可以: vim ~/.bashrc 然后进入文本编辑界面,请在文件的最后追加大致如下图内容: export GOROOT=GO语言解压的文件夹目录 export PATH=${PATH}:GO语言解压的文件...阅读全文

博文 2017-07-20 04:02:50 xie1xiao1jun

Go 面向对象式编程

『就要学习 Go 语言』系列 -- 第 25 篇分享好文 Go 语言没有对象的概念,但是 struct 类型有着和对象类似的特性。struct 类型可以定义自己的属性和方法。这篇文章我们来总结下 Go 语言中关于 “继承” 和多态的概念。 嵌入类型 嵌入类型是指将已有的类型直接声明在新的结构类型里。不像 Java、C++ 等语言,Go 语言没有继承,但是可以通过组合的方式实现代码的复用。 type User struct { Name string Email string } type Admin struct { User Level string } func (u *User) Speak() { fmt.Println("I am user",u.Name) } 复制代码上面的代码...阅读全文

博文 2019-06-12 11:04:22 Seekload