C++,Python,Go对照学习-01
好吧其实学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的更多相关文章
- python json基础学习01
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' import json #全称(javascript object ...
- C++,Python,Go对照学习-02
main函数 Go中有且只有一个main函数,而且main函数必须在package main当中.main函数无返回值也无参数,如果希望获取从命令行传递的参数有其他包解决这个问题. ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- "利用python进行数据分析"学习记录01
"利用python进行数据分析"学习记录 --day01 08/02 与书相关的资料在 http://github.com/wesm/pydata-book pandas 的2名字 ...
- Python 装饰器学习
Python装饰器学习(九步入门) 这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 1 2 3 4 5 6 7 8 # -*- c ...
- MVC&WebForm对照学习:文件上传(以图片为例)
原文 http://www.tuicool.com/articles/myM7fe 主题 HTMLMVC模式Asp.net 博客园::首页:: :: :: ::管理 5 Posts :: 0 ...
- (转载)Python装饰器学习
转载出处:http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html 这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方 ...
- python网络爬虫学习笔记
python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...
- Python装饰器学习
Python装饰器学习(九步入门) 这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 ? 1 2 3 4 5 6 7 8 # -*- ...
随机推荐
- java线程例子登山
Through its implementation, this project will familiarize you with the creation and execution of thr ...
- 观察者模式(Observer Patterns)
今天学习了观察者模式,做个总结,方便以后回想. 首先是定义:观察者模式就是定义对象之间一对多的依赖关系,当一个对象状态发生改变时,全部依赖他的对象都收到推送消息并自己主动更新做出改变. 我的理解:生活 ...
- winzip15.0许可证
username:Juzhaofeng 授权码:MPZRP-Y7LWW-K1DKG-FM92E-2C5F5-ZEKFF
- elasticsearch2.2
elasticsearch2.2 集群搭建各种坑 目前生产环境的es版本是1.0版本,需要升级到最新的2.2版本,于是在测试环境进行部署集群测试,在测试过程中遇到的坑相当多,下面详细介绍下. ...
- poj 2253 Frogger (最长路中的最短路)
链接:poj 2253 题意:给出青蛙A,B和若干石头的坐标,现青蛙A想到青蛙B那,A可通过随意石头到达B, 问从A到B多条路径中的最长边中的最短距离 分析:这题是最短路的变形,曾经求的是路径总长的最 ...
- 重新想象 Windows 8 Store Apps (7) - 控件之布局控件: Canvas, Grid, StackPanel, VirtualizingStackPanel, WrapGrid, VariableSizedWrapGrid
原文:重新想象 Windows 8 Store Apps (7) - 控件之布局控件: Canvas, Grid, StackPanel, VirtualizingStackPanel, WrapGr ...
- 读取 raspberrypi 的cpu和gpu温度
#!/usr/bin/env python # -*- coding: utf-8 -*- import requests import json import time import command ...
- Centos memcached的php拓展 管理界面
确定已安装apache 一.安装php5 1.安装libxml2 tar zxvf libxml2-.tar.gz cd libxml2- ./configure --prefix=/usr/loca ...
- POJ 1019 Number Sequence 解读
这是一个看似简单,其实很难受. 本来我想发挥它的标题轨道基础.没想到反被消遣-_-|||. 看它在个人基础上,良好的数学就干脆点,但由于过于频繁,需求将被纳入全,因此,应该难度4星以上. 方法就是直接 ...
- post跨域请求
[名词解释] 跨域:https://developer.mozilla.org/en-US/docs/JavaScript/Same_origin_policy_for_JavaScript 同源策略 ...