前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从Scala和Python的“shell”说起

从Scala和Python的“shell”说起

作者头像
哒呵呵
发布2018-08-06 14:17:18
3670
发布2018-08-06 14:17:18
举报
文章被收录于专栏:鸿的学习笔记鸿的学习笔记

在《写给Python和Scala的碎碎念》的系列的开篇,让我们从最简单的交互式“shell”开始,一步步来看看Python和Scala的对于同一件事体现出来的设计理念。 · 使用Scala解释器 Scala和Python都可以在shell页面输入scala或者python进入交互页面 。Scala作为一门静态语言,拥有着属于自己的“shell”,可以让你快速的检验一小段Scala代码。Python也拥有着自己的“shell”,使用方式和Scala一样,不同的就是Python还拥有着IPython这样强化过的“shell”。 来试试“shell”带来的方便吧!首先在“shell”里分别输入1+1 scala: scala> 1+1 res0: Int = 2 scala> res0 res1: Int = 2

python: >>> 1+1 2 >>> _ 2 >>> type(_) <class 'int'>

结果有些许不同。 1.在Scala里,一共是输出了一个自动生成的或者是用户自定义的变量名res0,指向计算的结果值,而Python则隐性的使用了单下划线_来指向计算的结果值。由于Scala也是一门纯粹的函数式编程语言,所以如果我们接着输入res0,便会重新使用变量res1,Python则不一样,会重新赋值给_。

2.Scala在结果值里存在了一个冒号和等号,而冒号后面指明了表达式的结果类型Int,这反映了Scala一个特性,那就是类型推断,Python作为一门动态语言,它无需预定义数据类型,在运行时检查数据类型,我们可以通过type(_)发现,它也被自动推断为int了。 3.同样的Scala和Python都输出了结果2。 如果再深入的看看,Scala里的Int和Python的int实际上都是一个类,不同的是Scala的Int是因为Scala提供一个独特的信息隐藏机制,把原本应该写为Scala.Int的简化成了Int(这样的机制应用在Scala绝大部分的数据类型上,比如Boolean),其对应的就是Java的基本类型,而Python的int则是C语言的一个结构体,采用的是long类型,有一些常用的数(工程意义上)在解释器启动之时便实例化后存在缓冲池里(-5到256)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档