热搜关键词: 电路基础ADC数字信号处理封装库PLC

pdf

《Go语言编程》高清完整版电子书

  • 1星
  • 2015-01-22
  • 9.31MB
  • 需要1积分
  • 3次下载
标签: Go语言

Go语言

编程

编程

《Go语言编程》高清完整版电子书

www.Linuxidc.com
图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权
Linux公社(www.LinuxIDC.com)是专业的Linux系统门户½站,实时发布最新Linux资讯。
www.Linuxidc.com
图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权
Linux公社(www.LinuxIDC.com)是专业的Linux系统门户½站,实时发布最新Linux资讯。
www.Linuxidc.com
内 容 提 要
本书首先引领读者快速浏览
Go
语言的全貌
迅速消除读者对这门语言的陌生感
然后循序渐进地介绍
Go
语言的面向过程和面向对象的编程语法
其中穿插了一些与其他主流语言的比较以让读者理解
Go
言的设计动机
接着探讨了
Go
语言最为重要的并行编程方法
之后介绍了½络编程
工程管理
安全编程
开发工具等非语法相关½非常重要的内容
最后为一系列关于
Go
语言的文章
可以帮助读者更深入了解这
门全新的语言
本书适合所有层次的开发者阅读
图灵原创
Go语言编程
编著   许式伟 吕桂华 等
责任编辑 王军花
人民邮电出版社出版发行  
北京市崇文区夕照寺街14号
邮编 100061  电子邮件 315@ptpress.com.cn
½址 http://www.ptpress.com.cn
北京      印刷
开本:800×1000 1/16
印张:15.25
字数:361千字
印数:1
4 000册
2012年 8
月第
1
2012年 8
月北京第
1
次印刷
ISBN 978-7-115-29036-6
定价:49.00元
读者服务热线:
(010)51095186½604 印装质量热线:(010)67129223
反盗版热线:
(010)67171154
图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权
Linux公社(www.LinuxIDC.com)是专业的Linux系统门户½站,实时发布最新Linux资讯。
www.Linuxidc.com
前言:为什么我们需要一门新语言
1
1
前言:为什么我们需要一门新语言
编程语言已经非常多,偏性½敏感的编译型语言有
C、C++、Java、C#、Delphi和Objective-C
等,偏快速业务开发的动态解析型语言有PHP、Python、Perl、Ruby、JavaScript和Lua等,面向特
定领域的语言有Erlang、R和MATLAB等,那么我们为什么需要
Go这样一门新语言呢?
在2000年前的单机时代,C语言是编程之王。随着机器性½的提升、½件规模与复杂度的提
高,Java逐步取代了C的½½。½管看起来Java已经深获人心,½Java编程的½验并未½如人意。
历年来的编程语言排行榜(如图0-1所示)显示,Java语言的市场½额在逐步下跌,并趋近于C语
言的水平,显示了这门语言后劲不足。
Tiobe编程语言排行榜
2
3
4
Java语言
所占的百分比(%)
5
C语言
6
7
时间
图0-1
编程语言排行榜
8
Go语言官方自称,之所以开发Go
语言,是因为“近10年来开发程序之难让我们有点沮丧”
这一定½暗示了Go语言希望取代C和Java的地½,成为最流行的通用开发语言。
Go希望成为互联½时代的C语言。多数系统级语言(包括Java和C#)的根本编程哲学来源于
——————————
① 数据来源:http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html。
9
图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权
Linux公社(www.LinuxIDC.com)是专业的Linux系统门户½站,实时发布最新Linux资讯。
www.Linuxidc.com
2
前言:为什么我们需要一门新语言
C++,
将C++的面向对象进一步发扬光大。
½是Go语言的设计者却有不同的看法,
他们认为C++ 真
的没啥½学的,值得学习的是C语言。C语言经久不衰的根源是它足够简单。因此,Go语言也要
足够简单!
那么,互联½时代的C语言需要考虑哪些关键问题呢?
首先,并行与分布式支持。多核化和集群化是互联½时代的典型特征。½为一个互联½时代
的C语言,必须要让这门语言操½多核计算机与计算机集群如同操½单机一样容易。
其次,½件工程支持。工程规模不断扩大是产业发展的必然趋势。单机时代语言可以只关心
问题本身的解决,而互联½时代的C语言还需要考虑½件品质保障和团队协½相关的话题。
最后,
编程哲学的重塑。
计算机½件经历了数十年的发展,
½成了面向对象等多种学术流派。
什么才是最½的编程实践?½为互联½时代的C语言,需要回答这个问题。
接下来我们来聊聊Go语言在这些话题上是如½应对的。
并发与分布式
多核化和集群化是互联½时代的典型特征,那语言需要哪些特性来应对这些特征呢?
第一个话题是并发执行的“执行½”
。执行½是个½象的概念,在操½系统层面有多个概念
与之对应,比如操½系统自己掌管的进程(process)
、进程内的线程(thread)以及进程内的协程
(coroutine,也叫½量级线程)
。多数语言在语法层面并不直接支持协程,而通过库的方式支持的
协程的功½也并不完整,比如仅仅提供协程的创建、销毁与切换等½力。如果在这样的协程中调
用一个同步IO操½,比如½络通信、本地文件读写,½会阻塞其他的并发执行协程,从而无法真
正达到协程本身期望达到的目标。
Go语言在语言级别支持协程,叫goroutine。Go语言标准库提供的所有系统调用(syscall)操
½,½然也包括所有同步IO操½,½会出让CPU给其他goroutine,这让事情变得非常简单。我们
对比一下Java和Go,近距离观摩下两者对“执行½”的支持。
为了简化,我们在样例中½用的是Java标准库中的线程,而不是协程,具½代码如下:
public class
MyThread
implements
Runnable {
String arg;
public
MyThread(String a) {
arg = a;
}
public void
run() {
// ...
}
public static void
main(String[] args) {
new
Thread(new MyThread("test")).start();
// ...
}
图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权
Linux公社(www.LinuxIDC.com)是专业的Linux系统门户½站,实时发布最新Linux资讯。
展开预览

猜您喜欢

评论

登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

  • MATLAB 读写 txt 基础
    文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。MATLAB提供了一系列低层输入输出函数,专门用于文件操作。1、文件的打开与关闭1)打开文件在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为:fid=fopen(文件名,‘打开方式’)说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功
  • 嵌入式初学者问题
    先说明一下我的基础:曾经用java 写过管理软件,也学过c语言,做过网络管理员!我是一个计算机爱好者!对liunx 系统很是着迷!并想从事这方面工作!但现在,只限于基本命令的应用!于是找了很过关于linux 这方面内容的开发材料,但大多都是关于arm嵌入式的。我便不假思索的学习起了这方面的内容。可是问题来了,我的硬件并不是很好。单片机只能说是了解,我突然失去了方向,不知该从哪学起!看很多评论,没学
  • wince下time的api???
    比如一个LPSYSTEMTIME,要得到它加上8小时后的LPSYSTEMTIME,有什么api吗??
  • 请教问题(奖励10芯币),
    void alarm(void){加一句 if(carry_count*250+pulse_count=alarm_l)Alarm=0; if(carry_count*250+pulse_countalarm_h)Alarm=1;}我想要在执行前检测如果Alarm=0;就跳过if(carry_count*250+pulse_count=alarm_l)Alarm=0; 这句,直接执行下面的语句,请
  • 谁有德国EMZ的KP系列电容
    小弟现在开发要用到这个德国人产的电容,但是市场上很难买到。所有求助大家,大家看哪有卖这种电容的,给个联系方式!具体参数为4.7nF 精度+-1%到2%的。如果没有德国EMZ的电容,那其他品牌的电容也可,但是希望精度能高点!谢谢!小弟联系方式:[email=icaniwiill@163.com]icaniwiill@163.com[/email]13861178030
  • 环境检测版的LSM6DSL的器件ID,陀螺,加速度,温度可算读出来了。
  • 求助库函数的说明文档
  • 希望一月 爱上EEWORLD——论坛推广月(恩智浦全程赞助)
  • 【A题】PV系统的变电压MPPT算法
  • 我的建议

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
×