【Go语言】【4】GO语言类型和为类型增加方法

一、GO语言的类型GO语言中内置了如下基础类型:整型:byte(int8)、int16、int、uint等浮点型:float32、float64复数类型:complex64、complex128布尔类型:bool字符类型:rune字符串:string错误类型:error同时GO语言也支持下面的复合类型:指针数组切片:slice集合:map通道:chan结构体:struct接口:interface上看下看左看右看,怎么没有看到double类型呢?同时还有几个陌生的面孔,像rune、error、sl...阅读全文

51CTO博客 2015-02-16 23:54:27 qingkechina

go实现留言本

go实现个留言本 一、分析 要实现这个下面是几个重要的东西。 1.数据库操作(go怎么操作数据库)、 2.输出js,css,图片等 3.html显示 为什么会有以上的几个问题.下面一一分析 1.数据库操作。 go并没有提供对应的数据库操作的包。只提供了数据库的接口。各种数据库必须自己去实现数据库操作的接口。 感谢开源社区,这些别人帮你实现了。然后我们只需要导入对应的包即可。 2.输出js,css,图片 这也是个问题。这的确是个问题。上次的代码只是实现了动态页面的显示。但是js和图片这些是不同的他...阅读全文

CSDN博客 2013-06-08 23:45 xming4321

使用intelliJ做为Golang的IDE

intelliJ是java的开发利器,一个非常好用的IDE,Android Studio就是基于intelliJ改的,选择使用intelliJ作为Golang的IDE,很是便利。 下载intelliJ 首先要下载http://www.jetbrains.com/idea/intelliJ分为社区版和专业版,建议使用专业版,如果暂时还不想付费,也可以考虑先实现社区版是免费的,对于做Golang或者Java开发的影响很小,但是使用社区版的intelliJ想要开发html,css和JavaScript...阅读全文

Segmentfault 2015年10月31日发布 姜家志

Golang在Mac OS上的环境配置

Golang是Google开发的一种编译型,平行化,具有垃圾回收功能的编译语言,还和C一样有指针。Golang是天生的网络编程语言,学习使用Golang先从环境配置开始。环境要求: Homerbrew 安装参考:http://brew.sh/ 安装Golang Golang可以通过源代码自己编译安装https://golang.org/project/,为了管理和升级建议使用Homerbrew安装。使用命令行直接安装Golang: brew install go ==> Downloading ...阅读全文

Segmentfault 2015年10月31日发布 姜家志

Go语言快速入门

一年前为了给同事介绍Go而做的演讲文稿。一年过去,我对Go的理解没有任何进展。最近决定深入地学习这门语言。 Hello World package main import "fmt" // this is a comment func main() { fmt.Println("Hello World") } Build & Run $ cd D:\Go\src\github.com\sif\hello $ go run main.go Hello World $ go build main.g...阅读全文

Segmentfault 2015年10月14日发布 adam1q84

Go抓取网页数据并存入MySQL和返回json数据<四>

上一节已将将需要的数据从网站http://www.gratisography.com/ 抓取并存入数据库【使用crawldata.go中的InsertData(&imageDatas)函数】,现在需要将数据从数据库indiepic的表gratisography中取出并然会json格式的数据。 项目文件夹结构如下: indiepic ├── README.md ├── crawldata │ ├── crawldata.go │ └── database.go └── indiepic.go 现在...阅读全文

Segmentfault 2015年09月30日发布 Arron_yr

Golang极简入门教程(一):基本概念

Golang极简入门教程(一):基本概念安装 Golang在 http://golang.org/dl/ 可以下载到 Golang。安装文档:http://golang.org/doc/install。Hello Go我们先创建一个文件 hello.go:复制代码代码如下:package main import "fmt" func main() { fmt.Printf("hello Golang\n");}执行此程序:复制代码代码如下:go run hello.go包Golang 程序由包(...阅读全文

51CTO博客 2016-01-14 09:28:48 umigo0819

Go抓取网页数据并存入MySQL和返回json数据<三>

上一节主要实现了使用 goquery 从图片网站 http://www.gratisography.com/ 抓取数据。主要抓取图片的data-original、width、height、alt、type 五项数据。因此需要先创建数据库和相应的表,在mac上我使用 Sequel Pro 数据库管理软件,连接之后创建新的数据库indiepic,然后创建表gratisography: CREATE TABLE `gratisography` ( `id` int(11) unsigned NOT N...阅读全文

Segmentfault 2015年09月30日发布 Arron_yr

Go抓取网页数据并存入MySQL和返回json数据<二>

上一节已经说明了要做什么,以及整个小程序的目录结构,接下来就开始编码部分。首先在入口文件中引入项目下的包crawldata,然后调用其中抓取数据的函数,暂时取名为Crawl: package main import ( "fmt" "indiepic/crawldata" ) func main () { // 使用crawldata包里面的Crawl()抓取需要的数据存到数据库 crawldata.Crawl() fmt.Println("主函数") } 然后就是实现包crawldata里面的...阅读全文

Segmentfault 2015年09月30日发布 Arron_yr

Go-简洁的并发

来源:http://www.yankay.com/go-clear-concurreny/多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang, Erlang, Scala等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式有一个极其简洁的内核,还有在此之上丰富的外延。可以解决现实世界中各种各样的问题。本文以GO语言为例,解释其中内核、外延。并发模式之内核这种并发模式的内核只需要协程和通道就够了。协程...阅读全文

CSDN博客 2013-06-26 14:51 heiyeshuwu

Go抓取网页数据并存入MySQL和返回json数据<一>

前言 很久前就想学习GO,但是由于准备读研和要实习就一直耽搁没动手,只是偶尔看一下相关的基本语法,并没有将其具体地运用到实际的编码中。大四了,课程一下子少了很多,于是决定用它从网上抓一些图片数据,然后提供接口,为后面学习iOS提供一些网络数据。 有关GO的介绍我就不在这里说了,对于我这种初学者本来说得就不清不楚,多给自己落下话柄。我要实现的功能主要有如下几点: 从精美图片网站抓取图片链接等数据; 将获取的数据存入MySQL数据库; 提供一个简单的json接口使得自己能通过某链接获取json数据。...阅读全文

Segmentfault 2015年09月30日发布 Arron_yr

godep使用注意

godep是目前golang主流的包管理工具,众多基于go语言的项目如docker, coreos, kubernetes等都是使用godep来解决项目包依赖和版本管理问题。作为命令行工具,godep很简单,常用的基本godep save和godep restore两个命令就够了,因此一般新手参照官方说明都能快速上手。不过有几个小问题经常会让人疑惑,这里做一下记录和解释: godep save的机制 在未指定包名的情况下,godep会自动扫描当前目录所属包中import的所有外部依赖库(非系统库...阅读全文

Segmentfault 2015年09月22日发布 wiowei

多进程管理工具:goreman

Linux下多进程管理工具对开发和运维都很有用,常见的功能全面的主流工具主要有monit、supervisor。不过开发中使用则推荐轻量级小工具goreman。 goreman是对Ruby下广泛使用的foreman的重写,毕竟基于golang的工具简单易用多了。顺便提一句:goreman的作者是mattn,在golang社区挺活跃的日本的一名程序员。foreman原作者也实现了一个golang版:forego,不过没有goreman好用,举个例子:coreos的etcd就是使用的goreman来...阅读全文

Segmentfault 2015年09月22日发布 wiowei

[go]method的指针声明及非指针声明

刚入手golang,大概弄清楚了method在go里的概念。以下大部分为搬运过程重写代码。 method可以为一个type添加(声明)一个方法,例如: type Cat struct { } func (c Cat) Hwo() { fmt.Println("Miah!") } 即对Cat类型(结构体)添加Hwo方法,使其在叫唤的时候可以发出声音。 这种添加方法的代码表现比java好很多(extend),也比python好(需重新声明一个Class)。 按官方的spec可以对应到如上的例子的两种...阅读全文

Segmentfault 2015年09月21日发布 cvvnx1

MiniJava语言编译器的Golang实现。

Dog-comp Abstract 文章介绍一个编译器的实现流程。源语言选用MiniJava. MiniJava是一个面向对象语言,支持继承,对象创建等面向对象的特性。具体语法参考Tiger book 附录。Dog-comp是一个用golang实现的minijava编译器,目前可以将minijava翻译成c。dog-comp包括前端的lexer,parser,type-checking,codegen,后端还有基于minijava-AST的优化,基于控制流图的优化。为了满足minijava面向对...阅读全文

Segmentfault 2015年09月17日发布 qc1iu

【Go语言】【3】GO语言常量

通常情况下语言入门前会讲一堆背景和特性,目的是为了能让学习者对该语言有一个大概的认识,但这里我想直接进入细节,不是因为任性,而是因为常量是编程语言最基本的组成元素,这与语言背景无关。一、字面常量在说明字面常量之前先说一下魔鬼数字,哪么什么是魔鬼数字呢?func calculatePrice(price float32) float32{ return price * 0.8}这个方法中的0.8就是魔鬼数字(没有具体含义),它导致代码难以理解,这里的0.8表示折扣的意思,为了清晰起见,上面的代码可...阅读全文

51CTO博客 2015-02-16 21:59:01 qingkechina

【Go语言】【2】Sublime配置GO开发环境

一、下载Sublime Text3读者可以在官网http://www.sublimetext.com/3下载【备注】:由于我用的操作系统是win8 64位,所以选择Windows 64 bit链接下载二、注册Sublime Text31、安装完之后打开Sublime Text会发现软件没有注册,其实不注册关系也不大,只是在后面使用时会弹框影响易用性2、打开Sublime Text,选择“Help > Enter License”3、输入注册码(注意把BEGIN和END所在行也复制过去),单击Us...阅读全文

51CTO博客 2015-02-12 22:53:27 qingkechina

【Go语言】【1】windows操作系统下GO环境配置

一、下载Go安装包 由于google在国内被墙,直接官网下载已成绝路,不过所幸国内有一批爱心人士。访问http://golang.so/dl/,选择最新版本1.4,然后根据您的操作系统选择对应的安装包。 【备注】:由于我在家使用的是win8 64位操作系统,所以我选择go1.4.windows-amd64.msi二、安装GO1、双击go1.4.windows-amd64.msi,进入安装界面2、选择“Next”,进入最终用户License确认界面,勾选同意项,单击Next3、设置安装路径,这里我...阅读全文

51CTO博客 2015-02-12 19:27:23 qingkechina

Go语言项目(kingshard)性能优化实例剖析

kingshard性能优化网络篇 最近kingshard的功能开发节奏慢了许多。一方面是工作确实比较忙,另一方面是我觉得kingshard的功能已经比较完善了,下一步的开发重点应该是性能优化。毕竟作为一个MySQL proxy,如果转发SQL的性能很差,再多的功能都无济于事。所以这个周末一直宅在家里优化kingshard的转发性能。经过两天的探索发现,将kingshard的转发SQL性能提升了18%左右,在这个过程中学到了一下知识。借此机会分享一下,同时也是督促一下自己写博客的积极性。:) 1....阅读全文

Segmentfault 2015年11月03日发布 flike

Go操作Redis

Start 在SF文章中,关于PHP,python操作redis的文章已经很多了。可是少了go对redis的操作。最近也是刚开始学Go,由于对redis的偏爱,也顺便学习了一下,并总结下来。 Go-Redis包管理 很明显,我们Go是没有这个包的,那么我们可以利用GO的命令。首先我们得先配置GOPATH的路径,我选择的是/data/go/goSource作为我包的路径,所以shell执行如下 export GOPATH=/data/go/goSource go get github.com/al...阅读全文

Segmentfault 2015年11月03日发布 Lowky