好吧其实学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. Oracle错误——ORA-03113:在通信信道文件的末尾 解决方案

    起源 今天跟往常一样,登陆PL/SQL,确登陆失败,出现一个错误"ORA-01034"和"ORA-27101"如图: 然后就就通过命令提示符去登陆Oracle, ...

  2. hdu 4464 水

    http://acm.hdu.edu.cn/showproblem.php?pid=4464 现场赛总会有水题,这就是最水的一道,预计也就是能当高校的上机题,保研用,呵呵~~~ #include &l ...

  3. 分析java.lang.NullPointerException thrown in RelativeLayout measure()

    典型的再现环境 模型: Sony Ericsson Android version: 2.3.4 StackTrace: E/AndroidRuntime( 3579): FATAL EXCEPTIO ...

  4. MVC Razor标签

    1. RenderBody在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到标签里有这样一条语句:@Rend ...

  5. 【原创】只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(四)

    全系列Index: [原创]只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(一) [原创]只学到二维数组和结构体,不用链表也能写一个C贪食蛇?(二) [原创]只学到二维数组和结构体,不用链表也能 ...

  6. vmware 10 注冊码

    先安装VMware Workstation 10.0原版,然后用以下的随意一个VMware Workstation序列号注冊 1Y0LW-4WJ9N-LZ5G9-Z81QP-92PN7 JU052-F ...

  7. Effective C++ Item 32 确保你的 public 继承模子里出来 is-a 关联

    本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:"public继承"意味 is-a.适用于 base classe ...

  8. 采用ToolRunner执行Hadoop基本面分析程序

    为了简化执行作业的命令行.Hadoop它配备了一些辅助类.GenericOptionsParser它是一类.经常用来解释Hadoop命令行选项,并根据需要.至Configuration采取相应的对象设 ...

  9. 浅谈web网站架构演变过程(转)

    前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶 ...

  10. [TroubleShooting] The server network address can not be reached or does not exist

    Backtround: I'm trying to set up mirroring between two sql 2008 R2 databases on different servers in ...