C++,Python,Golang对照学习-01

wzg_j · · 2045 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

好吧其实学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中实现并发真他妈的简单.......

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

有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:wzg_j

查看原文:C++,Python,Golang对照学习-01

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2045 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传