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

关于golang中包(package)的二三事儿

golang的package和其他语言的组织方式完全不同,刚开始接触时,很不适应。 golang的package的特点: 1、go的package不局限于一个文件,可以由多个文件组成。 组成一个package的多个文件,编译后实际上和一个文件类似,组成包的不同文件相互之间可以直接引用变量和函数,不论是否导出; 因此,组成包的多个文件中不能有相同的全局变量和函数(这里有一个例外就是包的初始化函数:init函数,下面还有讨论) 2、go不要求package的名称和所在目录名相同,但是你最好保持相同,否则容易引起歧义。因为引入包的时候,go会使用子目录名作为包的路径,而你在代码中真正使用时,却要使用你package的名称。 3、每个子目录中只能存在一个package,否则编译时会报错。 4、go的...阅读全文

博文 2014-10-04 19:26:02 dajianshi

go 语言 优势及 主要用途

1、Go有什么优势 可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了。 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。 语言层面支持并发,这个就是Go最大的特色,天生的支持并发,我曾经说过一句话,天生的基因和整容是有区别的,大家一样美丽,但是你喜欢整容的还是天生基因的美丽呢?Go就是基因里面支持的并发,可以充分的利用多核,很容易的使用并发。 内置runtime,支持垃圾回收,这属于动态语言的特性之一吧,虽然目前来说GC不算完美,但是足以应付我们所能遇到的大多数情况,特别是Go1.1之后的GC。 简单易学,Go语言的作者都有C的基因,那么Go自然...阅读全文

博文 2016-09-05 06:00:47 u013378306

一个go lua binding完工

最近对go语言比较感兴趣,想试用go来做点东西,go做主框架,动态加载一些程序来执行。由于现在go语言不支持go模块的动态链接,所以需要选用一个脚本语言来补充,找了一下,感觉lua比较符合要求,虚拟机比较小,可以同时开多个执行多个lua脚本。于是就找了一下go对lua的binding,找到golua,但是已经好久没更新了,现在go1下编译都通不过,修改了一下通过来,结果发现不能注册go函数到lua中执行。。。 不得已,就想自己写一个,希望他能满足一下要求: 可以将go函数注册到lua中去,扩展lua的函数库 可以同时执行多个lua脚本 支持bool、int、float、string类型的相互转换,其他类型先不考虑 之后又添加: 从go中调用lua中的函数 其他类型都转的lua中的userda...阅读全文

博文 2014-10-04 19:26:05 偃鼠饮河

Go语言主要用途有哪些?

Go语言是2007年末由Robert Griesemer,Rob Pike,Ken Thompson主持开发,之后有Ian Lance Taylor,Russ Cox等人的加入,最终于2009年11月开源发布。它是一款简单的开源编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go语言是谷歌推出的一款全新的编程语言,可以在不损失应用程序性能的情况下极大的降低代码的复杂性,还可以发挥多核处理器同步多工的优点,并可解决面向对象程序设计的麻烦,并帮助程序设计师处理琐碎但重要的内存管理问题,相比于其他编程语言,简洁、快速、安全、并行、有趣、开源、内存管理、数组安全、编译迅速是其特色。 支持平台 1. 硬件架构:Go语言设计支持主流的32位和64位的x86平台,同时也支持32位的ARM架构; 2....阅读全文

go 语言 优势及 主要用途

1、Go有什么优势 可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了。 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。 语言层面支持并发,这个就是Go最大的特色,天生的支持并发,我曾经说过一句话,天生的基因和整容是有区别的,大家一样美丽,但是你喜欢整容的还是天生基因的美丽呢?Go就是基因里面支持的并发,可以充分的利用多核,很容易的使用并发。 内置runtime,支持垃圾回收,这属于动态语言的特性之一吧,虽然目前来说GC不算完美,但是足以应付我们所能遇到的大多数情况,特别是Go1.1之后的GC。 简单易学,Go语言的作者都有C的基因,那么Go自然...阅读全文

博文 2016-09-14 07:00:00 u013378306

golang plugin热更新尝试

电视剧《萌妃驾到》即将和观众见面,剧中很多皇妃的扮演者颜值演技都在线,在电视剧《萌妃驾到》中曲碗碗扮演者尤其受关注,那么剧中曲碗碗扮演者是谁,还演过哪些电视剧? ======================================= 薇.信.关.注.工.众.号:戏说影院 点击影院入口→阅读原文→输入"片名"搜索→即可观看! ======================================= 该剧主要讲述了萌妃步萌与皇上温楼两人在一路“逗智逗勇”的过程中相恋的故事。 在宣布定档的同时,该剧还发布了定档海报,海报尽显独特“萌式美学”。《萌妃驾到》剧中女主步萌由90后人气小花旦金晨饰演,在已公布的定档海报中,步萌作为芳华宫主位,一身唐装俏皮又不失妩媚。而饰演男主温楼的全能偶像艺...阅读全文

用mgo开发时,每个session是如何共享的

其实不一定用MGO了, 其他mongodb也是一样, session,_=mgo.Dial("server1.example.com,server2.example.com") 这个session是整个应用共享呢? 还是单个request共享? 还是只是某个函数共享? 我个人的倾向是每个request共享的, 但是每个创建出来的session要用defer去close, 代码写起来比较难看, 而且看论坛上(https://groups.google.com/forum/?fromgroups=#!topic/mgo-users/s1juysWHO8w) 作者是建议整个应用共享一个Session...阅读全文

go学习笔记-控制流

控制语句 条件语句 条件语句不需要使用括号将条件包含起来(); 无论语句体内有几条语句,花括号{}都是必须存在的; 左花括号{必须与if或者else处于同一行; 在if之后,条件语句之前,可以添加变量初始化语句,使用;间隔; 在有返回值的函数中,不允许将“最终的”return语句包含在if…else…结构中,否则会编译失败: func example(x int) int{ var result int if x == 0 { result = 5 } else { result = x } return result } 选择语句 switch i { case 0: fmt.Printf("0") case 1: fmt.Printf("1") case 2: fallthrough c...阅读全文

博文 2014-10-04 19:26:15 Bluven

奇妙的go语言(网页下载)

【 声明:版权全部,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 眼下,网上关于网页爬行的代码非常多。可是,自从看了go语言的web下载代码之后,我才发现原来它的网页下载代码才是最简单的。不信的话,大家能够看一下,package main import( "fmt" "log" "net/http" "os" ) func main(){ resp,err:=http.Get("http://www.baidu.com") if err!=nil{ //handleerror fmt.Println(err) log.Fatal(err) } defer resp.Body.Close() if resp.StatusCode==http.StatusO...阅读全文

博文 2014-10-23 03:00:02 lcchuguo

我为什么选择go语言

这里,我并不打算引起语言争论的口水仗,我并不是什么大牛,对语言的造诣也不深,只是想通过自己实际的经历,来说说为什么我在项目中选择go。 其他语言的经历 C++ 在接触go之前,我已经有多年的c++开发经验。主要用在游戏服务端引擎开发以及P2P上面,那可是一段痛并快乐的时期,以至于我看到任何的程序钉子问题都觉得可以用c++这把锤子给敲定。但是对于互联网项目开发来说,除非你的团队整体的c++技术水平nb,并且有很强的代码规范,不然真可能是一场灾难,更别说我们现有团队几乎没其他人会这玩意了。 本来,我打算在现有项目中的推送系统中使用c++,并用业余时间写好了一个网络底层库libtnet,但后来还是决定打住,因为没有人能够协助我开发。令我比较欣慰的是,libtnet有一个游戏公司在使用,现处于内部测...阅读全文

博文 2014-10-04 19:26:13 siddontang

神奇的go语言(基本语法)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 学习一门新的语言无非就是从基本的语法开始的。通过语法书来学习语言毕竟是非常枯燥的,所以我们不妨从最简单的例子开始学习一门新的语言。例子不多,但是有代表性。 (a)最简单的代码package main import "fmt" func main() { fmt.Println("hello, world") } (b)基本的函数package main import "fmt" func sub(a int, b int) int { return a - b; } func main() { fmt.Println(sub(2, 3)) } (c)if语句学习package main i...阅读全文

博文 2015-11-19 12:00:02 feixiaoxing

go语言学习小结(一)

学习go。记录下 1),package、import 这两个功能在现在的很多语言(java、C#)都具备了。这里面引入包在C家族确实是个很好的东西,使得代码组织更清晰;import而不是include头文件,完全剔除了c家族的弊病。 2),变量命名风格的改变 定义变量: var i int跟C家族语法 int i; 相去甚远,貌似更接近delphi、javascript、scala风格。当然在语法分析中这样定义变量比C风格的定义是更容易识别的。 类型推导: 类型推导在很多函数语言(scala、f#等)是必须滴,当然C#为了推出lambda表达式也实现了这个功能,不过java现在还没有。需要注意的是go中类型推导只能用在函数里面。来看看 v ar i int=11的等价写法 i := 11。 ...阅读全文

博文 2014-10-04 19:26:24 droidwolf

神奇的go语言(面向对象)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 有过C++语言学习经历的朋友都知道,面向对象主要包括了三个基本特征:封装、继承和多态。封装,就是指运行的数据和函数绑定在一起,C++中主要是通过this指针来完成的;继承,就是指class之间可以相互继承属性和函数;多态,主要就是用统一的接口来处理通用的逻辑,每个class只需要按照接口实现自己的回调函数就可以了。 作为集大成者的go语言,自然不会在面向对象上面无所作为。相比较C++、java、C#等面向对象语言而言,它的面向对象更简单,也更容易理解。下面,我们不妨用三个简单的例子来说明一下go语言下的面向对象是什么样的。 封装特性,package main import "fmt" ty...阅读全文

我为什么选择go语言

这里,我并不打算引起语言争论的口水仗,我并不是什么大牛,对语言的造诣也不深,只是想通过自己实际的经历,来说说为什么我在项目中选择go。 其他语言的经历 C++ 在接触go之前,我已经有多年的c++开发经验。主要用在游戏服务端引擎开发以及P2P上面,那可是一段痛并快乐的时期,以至于我看到任何的程序钉子问题都觉得可以用c++这把锤子给敲定。但是对于互联网项目开发来说,除非你的团队整体的c++技术水平nb,并且有很强的代码规范,不然真可能是一场灾难,更别说我们现有团队几乎没其他人会这玩意了。 本来,我打算在现有项目中的推送系统中使用c++,并用业余时间写好了一个网络底层库libtnet,但后来还是决定打住,因为没有人能够协助我开发。令我比较欣慰的是,libtnet有一个游戏公司在使用,现处于内部测...阅读全文

博文 2014-10-04 19:26:00 siddontang

Go-for range

Go中 有关循环,有两种,一种是for i :=0;i < len(x); i++ 的经典模式,另外一种是for k, v := range xxx。在用第二种方式时,有一些坑,这儿简单总结一下,希望对跟我一样有疑惑的朋友 有所帮助~ 1 for range 支持的数据类型 for range 目前支持slice、map、string以及channel。 在每一种的使用过程中编译器都会对其做转换。接着往下看 2 for range 应用与原理 2.1 slice 与 array 为了方便讲解,下文的 默认操作例子 for k, v := range a {} slice 跟 array 的for range 操作,会被编译器转换成经典for循环模式。 编译之后,大体是这样的: ha := a...阅读全文

博文 2019-09-24 20:32:48 aside section ._1OhGeD

# 包的概念 1. 和python一样,把相同功能的代码放到一个目录,称之为包 2. 包可以被其他包引用 3. main包是用来生成可执行文件,每个程序只有一个main包,程序运行的入口是包 `main` 4. 包的主要用途是提高代码的可复用...阅读全文

博文 2018-10-07 10:58:34 ace_kylin

Ngrok指南

Ngrok是什么? 是一个反向代理,它能够让你本地的web服务或tcp服务通过公共的端口和外部建立一个安全的通道,使得外网可以访问本地的计算机服务。 主要用途 内网穿透 将无外网固定IP的服务映射到公网 希望别人可以直接通过域名访问到本地 微信开发本地调试 准备 一台服务器,一个域名 安装golang 安装git 开始部署 修改DNS 添加二级域名ngrok 添加泛三级域名*.ngrok 配置环境 安装Go yum install golang 如果没有git,还需要安装git yum install git 配置ngrok ...关于部署配置运行,我就跳过了 具体你们可以看这里ngrok搭建指南 后面我讲讲怎样将它设置成服务,并且开机启动 [Unit] Description=ngrok ...阅读全文

博文 2019-08-14 19:32:46 花椰菜君

Go Go Go

版权声明:本文为博主原创文章,转载时请务必注明本文地址, 禁止用于任何商业用途, 否则会用法律维权。 https://blog.csdn.net/stpeace/article/details/78278453 第一次玩go, 准备在linux上搭建个环境, 一起似乎都准备好了, 然后出现: xxxxxx:~> go run me.go FATAL: kernel too old go build command-line-arguments: signal: segmentation fault 晕, 居然嫌弃我linux版本太旧, 我暂时不想升级linux, 也不想再Windows上玩go, 那还是用在线的方法搞起吧, 看我的第一个go程序: package main import "f...阅读全文

博文 2018-09-13 12:31:00 stpeace