vast 发表于 2004-7-23 02:03:16

Hello World

翻译: Vast@Pkuxkx

我们来看看Pike写的“Hello World”程序是什么样的。Pike有一个图形工具包,所以也可以写出基于窗口的"Hello World",也可以以交互的方式运行。
第一个Pike程序
      传统的编程语言教程都会用一个简单的程序来开头:一段在屏幕上显示“Hello World”这段文本的程序。用Pike语言写出来是这样的:

int main()
{
      write("Hello world!\n");
      return 0;
}

将这段程序写入一个文本文件,比如“hello.pike”,在命令行输入“pike hello.pike"就可以运行程序了。在图形界面下,可以通过双击程序图标,或者将图标直接拖入Pike解释器里面来运行。当然前提条件是你的电脑已经安装了Pike。
      程序运行的时候屏幕上会显示:Hello World!(图形界面下会弹出一个独立的窗口)
分析Hello World程序
      从程序中间的write("Hello world!\n");这段代码开始分析。
我们使用了内建的函数write来将文字输出到标准输出设备,通常是电脑屏幕。
   在紧跟write的两个圆括号之间的是需要传给函数的参数,在这个例子中只有一个参数---就是"Hello World"这段文本。双引号表明这是一个字符串,“\n”代表换行符。
      这一行程序不能单独存在,必须被更高层次的结构包含起来,也就是函数或者叫做方法。整段程序的意思就是存在一个叫做 main 的函数,这个函数可以像前面提到那样将一句话打印到输出设备上。main 前面的 int表示无论哪里用到这个函数,函数都会返回一个整数值。
      Pike在运行程序的时候总是从调用函数 main 开始,当main 执行完毕,程序就结束,并且返回一个值来表明程序是否按预计的那样成功执行。
      “;” 标明了一个语句的结束,这个程序有两个语句。在很久以前语句也叫做“程序行”,每行只能写一个语句,但是现在大多数编程语言允许按“自由格式”来书写程序,可以按照易于阅读的格式将程序分为很多行。
我希望看到这句问候语出现在一个窗口中!
       Pike支持图形用户界面,只要安装了Pike的GTK模块,然后再对程序稍作修改就可以了:

int main()
{
      GTK.setup_gtk();
      GTK.Alert("Hello world!");
      return -1;
}

      语句GTK.setup_gtk();的调用和write差不多,不同之处在于setup_gtk()是在GTK模块里面的函数,所以要用前缀"GTK."来让Pike知道去哪里找到它。第二个语句建立了一个写着“Hello World”的窗口,如附图所示。点击"OK"按钮后,窗口消失。
   最后一句return -1;, 负数的返回值表示程序在 main 函数执行完毕后不会停止运行,这句话在这里是必要的,否则窗口会马上消失。那么程序什么时候才停止运行呢?答案是永远不会停止。即使关掉窗口,程序还是在继续。因此我们需要修改一下程序:

int main()
{
      GTK.setup_gtk();
      GTK.Alert("Hello world!");
>      signal_connect("destroy", lambda() { exit(0); } );
      return -1;
}

增加的这句话使得窗口关闭的同时程序也停止运行。
交互模式的Pike
       交互模式下运行Pike可以输入一行命令就立刻执行。不使用任何参数启动Pike,然后输入命令,举例说明:
# pike
Pike v7.4 release 1 running Hilfe v3.5 (Incremental Pike Frontend)
> write("hello!\n");
hello!
Result: 7

      Pike在新的一行显示出"hello!", 同时内建函数write也有返回值----输出字符的个数。(注意:换行符也是一个字符。)
      使用交互模式有利于进行测试,也可以将Pike用作一个高级的计算器。需要注意的是,有些东西在交互模式下和从程序文件直接运行并不一样。

译者注:直接翻译好像有很多废话,以后准备按大意进行翻译精华。
页: [1]
查看完整版本: Hello World