b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

smalltalk语言 异常?smalltalk 编程?Smalltalk为什么让我爱不释手?

电脑杂谈  发布时间:2016-08-09 01:00:01  来源:网络整理

你是否正在寻找关于smalltalk的内容?让我把最俱价值的东西奉献给你:

C,C++,Python等,这些算是传统的语言吧,我从这些语言上学会了基本的编程技术。这之后,又有四种语言,它们让我学到了一些新的东西。这些语言改变了我思考的模式,虽然我从来没有使用过它们,但它们都是绝对值得你学习一下的。它们是:

smalltalk

◆ Lisp

◆ Erlang

◆ Haskell

你也许还会把Prolog加入这个列表中,但我没有学过Prolog。本文是关于smalltalk这种语言的。

我的目的并不是教大家怎么使用Smalltalk,而是向你展示一些Smalltalk能做到、而其它语言做不到的一些事情(声明:有些语言也能做到,它们都是smalltalk的一些方言)。不用说,我需要向你先介绍一下这种语言的一些基本知识,之后我才能向你展示更有价值的东西,那么就开始吧,第一个程序:

  • 1+1
  • 很显然,计算的结果是2.如果你想把它存到一个变量里,这样做:

  • 句子都要以点号(句号)结尾,像这样:

  • 在Squeak——这是smalltalk语言的一种版本实现——里,有一个对象叫做Transcript,你把消息发送给它,它能把消息显示到屏幕上。它很像一个Log窗口。你要这样去用它:

  • Transcriptshow:'Helloworld'
  • 运行的效果会是这样:

    Squeak transcript showing the result of Transcript show: 'Hello World'

    smalltalk的这种语法非常的独特。消息(message)——这在其它语言里也叫做“方法”——是show: (包括冒号),它接受一个参数。我们用下面的写法可以让这个句子运行10遍:

    现在你开始能看出smalltalk的独特之处了。我把消息timesRepeat:发送到对象“10”——一个Integer类。这N次的循环操作是由这个Integer来执行的,你认真想想,其实很有道理。

    第二个有趣的部分是代码段落(block),是在方括号里面的部分。你可能认为它跟其他种语言里的代码段落语法是同样的道理,比如Java的:

    但你要是从smalltalk的视角来看,你会发现它强大的多。它实际上是个闭包(closure)。看这段:

    现在,我有了一个叫做t的变量,它的类型是BlockClosure,通过这个变量,我可以做我想做的任何事情。如果我向它发送class消息,它会返回它的class类型:

  • tclass
  • 如果我向它发送value消息,它会运行,会在Transcript里留下“Hello World”字符:

  • tvalue
  • 让我们多看几段程序。一个没有任何参数的消息:

  • 10printString
  • 带有一个参数的消息:

  • 10printStringBase:2
  • 带有两个参数的消息:

  • 10printStringBase:2nDigits:10
  • 很可爱,不是吗?这个方法叫做printStringBase:nDigits:。我没在其它地方见过这样的语法;只有Objective-C是个例外,因为它是从smalltalk承袭过来的。

    小玩意已经说的不少了,现在说点复杂点儿的东西。我们来创建一个类:

    注意,一个类的创建是通过向其它类发送消息—包括名字和一些参数,告诉它我要继承它。这是一个消息,跟其它类型的方法调用一样。对象是类,类也是对象,。smalltalk的对象模式非常的优雅,但这是另外一个 话题。

    现在我们有了一个类,我们来创建一个方法,叫做greet:就在这个类里。

    在方法定义里,首先我们给这个方法加了一个注释,然后是管道 (“|”)包着的本地变量,然后是方法的实现,我把”Hello“放到了变量message里,然后用逗号符把它和变量name连接起来。然后我把它发送到Transcript里。

    运行起来的结果像这样:

    MyClass greet method

    好了,我们来用一用它:

  • mgreet:'Pupeno'
  • 为了创建一个类MyClass的对象,我们向这个类发送new消息。这个new并不是像Java里的关键字。new是一个方法。你可以看它的源代码,覆盖它,等等。不要动它,除非你十分清楚你在做什么。

    事实上,如果你想一下,你会发现我们没有看到任何的关键字。看看我们写过的这些代码,没有什么要记住的关键字!更重要的,目前为止,你已经基本的认识Smalltalk了。smalltalk就是这些,但就像是一个小积木块,这些小块能让你搭建出你想要的任何东西。


    本文来自电脑杂谈,转载请注明本文网址:
    http://www.pc-fly.com/a/tongxinshuyu/article-14248-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 刘延啸
        刘延啸

        美国的最终目的就是把世界上所有的大国分割成小国

      • 孙喜玲
        孙喜玲

        期待杨洋更精彩的绽放

      • 陈千
        陈千

        2008年的阅兵的时候

      热点图片
      拼命载入中...