golang 中fmt用法

fmt 包中的函数和方法 本文转自Golang学习-fmt包: http://www.cnblogs.com/golove/p/3286303.html // format.go ------------------------------------------------------------ // Fprintf 将参数列表 a 填写到格式字符串 format 的占位符中 // 并将填写后的结果写入 w 中,返回写入的字节数 func Fprintf(w io.Writer, forma...阅读全文

CSDN博客 2014-10-09 16:12 chenbaoke

【Golang】【 Network programming with Go】 Templates(模版)

翻译至http://jan.newmarch.name/go/template/chapter-template.html 第九章 很多编程语言都有字符串之间转换的机制,而GO语言则是通过模板来将一个对象的内容来作为参数传递从而字符串的转换。此方式不仅可以在重写HTML时插入对象值,也适用于其他方面。注意,本章内容并没有明确给出网络的工作方式,但对于网络编程方式很有用处。 Introduction 介绍 大多数服务器端语言的机制主要是在静态页面插入一个动态生成的组件,如清单列表项目。典型的例子是...阅读全文

CSDN博客 2012-11-24 14:33 kkkloveyou

Go语言及其WEB快速开发框架介绍

Go语言是性能优异的并行计算编程语言,可以使用其来开发高效的互联网应用,下面是基于Go语言的一些WEB快速开发框架(framework)和一些工具包(dev toolkits):web.go,网址:https://github.com/hoisie/web,有一阵子没维护更新了Gorilla,网址:http://gorilla-web.appspot.com/Revel(偏重量级,http://robfig.github.com/revel/,模仿基于Scala/Java语言的Play!框架)b...阅读全文

CSDN博客 2014-06-16 14:32 iefreer

Golang闭包

1 形式含义 所谓闭包就是一个函数“捕获”了和它在同一作用于的其他常量和变量。 从形式上看,在Golang中,所有的匿名函数都是闭包。闭包的创建方式和普通函数几乎一致,只有一个关键区别:闭包没有名字。 我们来看两个例子addPng := func(name string) string { return name + ".png" } addJpg := func(name string) string { return name + ".jpg" } filename := "abc" fmt...阅读全文

51CTO博客 2015-10-15 15:49:57 说话的白菜

Go语言与面向对象编程

学习Go语言差不多快两个月了,感觉这个过程还是蛮快乐的,翻翻英文资料,写写小程序,总是觉得有好多东西都搞不明白,一步步走下来,却发现,这些迷惑好像也是不可或缺的。慢慢思考,最终也找到了解决方法,可能不是最好的,但是我会随着认识的不断深入,继续修改。 因为java的东西在我的知识体系中是根深蒂固的,尽管我现在很讨厌java体系中的一些东西。对于曾经搞过java的人来说,去学习任何一门新的语言,首先会问,是否是面向对象的语言。刚接触GO的几天,曾经带我的师傅问我go是不是一门面向对象的语言,我闪烁其...阅读全文

CSDN博客 2012-12-24 09:17 lxy15329

Go语言 指针

Go语言保留着C中值和指针的区别,但是对于指针繁琐用法进行了大量的简化,引入引用的概念。所以在Go语言中,你几乎不用担心会因为直接操作内寸而引起各式各样的错误。Go语言的指针,基本上只剩下用于区分 byref 和 byval 语义。 运算符就是简单的 & 和 * 一个取地址、一个解析地址。 package main import( "fmt" ) func main(){ var i int // i 的类型是int型 i=1 // i 的值为 1; var p *int // p 的类型是[i...阅读全文

CSDN博客 2014-04-20 17:31 abv123456789

Go语言日趋成熟 运行速度接近C语言实现程序

Go将动态语言易于编写的特性和静态语言的高效性相结合,具备良好的易用性和极佳的执行效率。Go语言最初定位于网络服务器、存储系统和数据库的程序设计,同时在语言中包含并发构造体,以方便的帮助开发者创建并行任务。 Go语言具有效率极高的编译器,目前Go编译器能在Linux、FreeBSD以及Mac OS X平台下运行,但暂时没有对Windows环境提供编译支持。Go开发团队曾在博客中表示,编译完成的Go程序运行速度接近C语言实现的程序。 在今年五月份举办的Google I/O大会上,Go语言背后的工程...阅读全文

CSDN博客 2012-03-25 16:38 middle544291353

go语言数据类型-数组(array)

1 go语言数组简介 数组是Go语言编程中最常用的数据结构之一。顾名思义,数组就是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度。 在Go语言中数组是一个值类型(value type)。是真真实实的数组,而不是一个指向数组内存起始位置的指针,也不能和同类型的指针进行转化,这一点严重不同于C语言。所有的值类型变量在赋值和作为参数传递时都将产生一次复制动作。如果将数组作为函数的参数类型,则在函数调用时该参数将发生数据复制。因此...阅读全文

CSDN博客 2014-06-30 23:52 JesseYoung

Go语言内存模型

目录: 名词定义背景介绍Happens Before Happens-before 定义 同步方法 初始化创建Goroutine销毁GoroutineChannel通信锁Once 参考链接 名词定义 执行体 - Go里的Goroutine或Java中的Thread 背景介绍 内存模型的目的是为了定义清楚变量的读写在不同执行体里的可见性。理解内存模型在并发编程中非常重要,因为代码的执行顺序和书写的逻辑顺序并不会完全一致,甚至在编译期间编译器也有可能重排代码以最优化CPU执行, 另外还因为有CPU缓...阅读全文

CSDN博客 2014-02-15 11:29 kjfcpua

基于TCP套接字,通过Golang模拟HTTP请求(续)

HTTP报文的格式问题 接着昨天的写。昨天的文章有个不确定的地方,就是建立TCP连接之后,向服务器发送的数据,包括命令、头和主体的格式。这三个部分是如何分割的,我是参考了POSTMAN预览的格式和telnet发送的格式猜测的,原认为行直接是通过\n进行区分的,而头和主题是两个\n进行区分。这样发送也是能够正常解析的,今天去读了一下《HTTP权威指南》和Golangnet/http包,具体了解了下到底是如何区分的。 《HTTP权威指南》第三章3.2节,报文的组成部分当中提到: 每行都以一个由两个字...阅读全文

基于TCP套接字,通过Golang模拟HTTP请求

最近买了本书《HTTP权威指南》,看了第一章,看到书上说通过telnet模拟HTTP请求,我这个学渣就发现自己没学过计算机网络。 今天翻了一下考研指定教材《计算机网络》,里面也以访问清华大学主页为例详细讲了通信过程: 浏览器分析链接指向页面的URL。 浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址。 域名系统DNS解析出清华大学服务器的IP地址为166.111.4.100。 浏览器与服务器建立TCP连接(在服务器端IP地址是166.111.4.100,端口是80)。 浏览...阅读全文

Cyeam 28 September 2014 Bryce

Go 应该成为开发 android 的主要语言

前几天刚看到<Oracle 起诉 Google Android 操作系统侵犯了其 Java 知识产权>的新闻时,我就在猜想:如果 google 要摆脱 Oracle 的诉讼纠缠,那么只有一条路:就是用 go 取代 java 成为 android 的主要开发语言。这步迟早是要走的,也许谷歌已经在暗自部署了。我一直觉得手机应用开发采用VM语言或者JS是一种短视的行为,在前期也许会因为门槛低而吸引大量程序员涌入这个市场,但是很多高级应用(对速度响应要求很高)最终都难免要回到C/C++原生函数调用上来。...阅读全文

[Go] --- 指针和内存分配

Email : hahayacoder@gmail.com 1 Go语言中的指针和C语言中在使用上几乎没有什么差别,熟悉C语言应该很容易掌握,下面是Go语言中使用指针的代码 package main import "fmt" func main() { var value int = 1 //指向int型的指针 var pInt *int = &value //打印相关信息 fmt.Printf("value = %d \n pInt = %d \n *pInt = %d \n", value,...阅读全文

CSDN博客 2013-04-03 22:17 qiurisuixiang

Scala 和 Go 语言的 TCP 基准测试

最近我们需要一些带有些特殊特征的负载平衡器。现成可取并不是我们想要的获取此类特征的途径。 因此我们着手调研怎样才能写出我们自己的软件负载平衡器。由于我们的大部分代码库和专业知识都基于Scala,所以基于java虚拟机来创建此平衡器是个自然之选。 另一方面,很多人,也包括在 Fortytwo的我们自己——经常但不总是——会做一些毫无根据的假设,即JAVA虚拟机比本地编译语言要慢。 由于负载平衡器常是性能极其关键的组件,因此可能一个其他的编程语言/环境会比较好些? 我们不是很乐意走入奇特的世界写C/...阅读全文

CSDN博客 2013-08-19 08:49 zajin

Go语言 常用日志记录方法

Go目前标准包中日志只是方便的实现日志记录的功能,这些日志都是基于fmt包的打印再结合panic之类的函数来进行一般的打印、抛出错误处理。 一个简单的日志记录代码例子: 代码来自:http://www.du52.com/text.php?id=114 package main import( "fmt" "log" "os" ) func main(){ logfile,err:=os.OpenFile("/Users/cybercare/tmp/test.log",os.O_RDWR|os.O...阅读全文

CSDN博客 2014-04-20 16:38 abv123456789

Scala 和 Go 语言的 TCP 基准测试

最近我们需要一些带有些特殊特征的负载平衡器。现成可取并不是我们想要的获取此类特征的途径。 因此我们着手调研怎样才能写出我们自己的软件负载平衡器。由于我们的大部分代码库和专业知识都基于Scala,所以基于java虚拟机来创建此平衡器是个自然之选。 另一方面,很多人,也包括在 Fortytwo的我们自己——经常但不总是——会做一些毫无根据的假设,即JAVA虚拟机比本地编译语言要慢。 由于负载平衡器常是性能极其关键的组件,因此可能一个其他的编程语言/环境会比较好些? 我们不是很乐意走入奇特的世界写C/...阅读全文

CSDN博客 2013-08-11 08:52 zajin

Golang中获取中文字符串的子串字符位置及截取子串

昨天准备用golang做一个简单的文本分析,需要简单的对字符串进行一些操作,在查看了strings和strconv库时,我没找到截取字符串的函数,同时strings.Index返回的是子串的字节位置,例如这个例子:strings.Index("早上好,张先生!","好") 的返回值是6,而不是2(从0开始算)。 于是我自己写了一个处理中文的返回字符串子串位置的函数,思想其实很简单,首先通过strings库中的Index函数获得子串的字节位置,再通过这个位置获得子串之前的字节数组pre,再将pre...阅读全文

CSDN博客 2013-05-17 21:53 wowzai