好吧其实学Go只是为了好玩,只是为了好玩,学习过程中不免会把其他我懂的语言的思维定势和习惯带进来,由此有了这篇对照学习的记录,就当是留下学习的脚印吧.

这里所提及的语言特性在C++指最新的C++11标准,Python指Python3.x(2.x没学),Go是最新的1.1

变量声明


Go中变量声明的时候顺序是 变量名 -> 变量类型,并且可以忽略变量类型又结果进行推断如 a := 5 这个时候a就是int类型


C++中变量声明的顺序是 变量类型 -> 变量名. 可以通过auto关键字推断出变量类型 如 auto a = 5; 这个时候a是int


Python中所有变量的声明都是不需要用关键字指定变量类型的

defer


在Go中defer关键字用于延迟一个函数或者方法的执行,它会在外围函数或者方法返回之前返回其值(如果有).我想表示的是,第一次使用它的时候感觉这家伙像极了shared_ptr,而且要比shared_ptr要轻便.


shared_ptr可以指定一个析构时的删除器,在删除器中可以作一些资源释放的事情,以确保不管是以何种方式离开作用域(正常离开,发生异常)都可以使得资源能够正确释放.


Python...额嗯你根本不知道资源什么时候能释放..

range


在Go中,range是一个关键字,它总是返回两个值,一个是下标一个是具体的值

func main() {
list := []int{10, 11, 12, 13, 14, 15}
for key, value := range list {
fmt.Println("key:", key, "value:", value)
}
}

输出:


key: 0 value: 10


key: 1 value: 11


key: 2 value: 12


key: 3 value: 13


key: 4 value: 14


key: 5 value: 15

Python中range则是一个函数返回一个从0开始指定长度的连续整数序列,听起来有点拗口来几个例子就了然了

a = range(0,10)
for value in a:
print(value)

结果是0,1,2,3,4,5,6,7,8,9


c++中木有这货,但是C++提供了类似功能的范围迭代

int a[] = {0,1,2,3,4,5,6,7,8,9};
for(auto i : a)
{
cout << i << " ";
}

//0 1 2 3 4 5 6 7 8 9

切片

额嗯Go中的切片和Python的大类.有Python基础很容易入门的说

并发


Go是语言本身支持并发而Python和C++都是以库的形式实现并发.在Go中实现并发真他妈的简单.......

这些只是其中的一部分,其他部分以后有时间再陆陆续续写吧.

C++,Python,Go对照学习-01的更多相关文章

  1. python json基础学习01

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' import json #全称(javascript object  ...

  2. C++,Python,Go对照学习-02

    main函数         Go中有且只有一个main函数,而且main函数必须在package main当中.main函数无返回值也无参数,如果希望获取从命令行传递的参数有其他包解决这个问题.   ...

  3. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  4. "利用python进行数据分析"学习记录01

    "利用python进行数据分析"学习记录 --day01 08/02 与书相关的资料在 http://github.com/wesm/pydata-book pandas 的2名字 ...

  5. Python 装饰器学习

    Python装饰器学习(九步入门)   这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 1 2 3 4 5 6 7 8 # -*- c ...

  6. MVC&WebForm对照学习:文件上传(以图片为例)

    原文  http://www.tuicool.com/articles/myM7fe 主题 HTMLMVC模式Asp.net 博客园::首页::  ::  ::  ::管理 5 Posts :: 0 ...

  7. (转载)Python装饰器学习

    转载出处:http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html 这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方 ...

  8. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

  9. Python装饰器学习

    Python装饰器学习(九步入门)   这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 ? 1 2 3 4 5 6 7 8 # -*- ...

随机推荐

  1. MVC 学习 区域

    http://www.cnblogs.com/fly_dragon/archive/2011/10/12/2209438.html

  2. 项目构建之maven篇:2.HelloWorld项目构建过程

    文件结构说明: 项目构建生命周期: 清理 编译 測试 打包 执行 部署 清理与编译 hello\pom.xml POM:Project Object Model,项目对象模型 pom.xml与ant的 ...

  3. C++ Primer高速学习 第一章 获得二:输入和输出 (IO)

    什么是输入输出.即Input-Output,缩写是非常装B的IO?请看经典民间解释: C++语言的输入输出是指信息从外部输入设备(如键盘.磁盘等)向计算机内部(内存)输入(即Input)和从内存向外单 ...

  4. ORACLE 11G没有备份文件參数文件在异机通过rman备份恢复找回被误删的数据

    背景:          同事误删除线上数据.所以须要从备份中找回数据恢复. 真实屋漏偏逢连夜雨.船迟又遇打头风.前两天备份的磁盘坏块,如今仅仅有rman全备的.bak文件,没有控制文件和參数文件,所 ...

  5. WCF扩展之实现ZeroMQ绑定和protocolBuffer消息编码(二)实现IRequestChannel(2016-03-15 12:35)

    这是这个系列的第二篇,其他的文章请点击下列目录 WCF扩展之实现ZeroMQ绑定和protocolBuffer消息编码(一)概要设计 WCF扩展之实现ZeroMQ绑定和protocolBuffer消息 ...

  6. 【转】Android Http Server

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://vaero.blog.51cto.com/4350852/939413 Andro ...

  7. HD2 Tmobile 重新分区代码(使用clk 1.6.5 de)

    fastboot oem part-resize misc: fastboot oem part-resize recovery: fastboot oem part-resize boot: fas ...

  8. debain install scim

    1. su input root pwd 2. apt-cache search scim apt-get install scim apt-cache search scim-pinyin apt- ...

  9. ODPS 下一个map / reduce 准备

    阿里接到一个电话说练习和比赛智能二选一, 真的很伤心, 练习之前积极老龄化的权利. 要总结ODPS下一个 写map / reduce 并进行购买预测过程. 首先这里的hadoop输入输出都是表的形式, ...

  10. HDU 1698 Just a Hook (段树更新间隔)

    Problem Description In the game of DotA, Pudge's meat hook is actually the most horrible thing for m ...