Nice使用者手冊(二)

來源:互聯網
上載者:User
序
本手冊描述了Nice程式設計語言。它目前正在修訂之中,這意味著這門語言在許多方面還不完整,或有些部分基本上還是空白。在此期間,建議同時閱讀《Nice Tutorial》[http://nice.sf.net/language.html],該書包括了許多額外資訊。閱讀這兩篇文檔需要一些Java的知識,或至少瞭解一種物件導向語言。

本手冊的作者是Daniel Bonniot和Bryn Keller,Francis Barber也參與其中。


 

第一章 基本原理
A language that doesn't affect the way you think about programming, is not worth knowing.

—Alan J. Perlis

The art of progress is to preserve order amid change and to preserve change amid order.

—Alfred North Whitehead


 


Nice語言是一門新的基於Java的物件導向語言。它從函數型語言借鑒了一些特性,並藝術性地將學院派的研究成果付諸實踐。而這些特性使它有更好的表達力(expressivity)、模組化結構(modularity)和安全性(safety)。

安全性



Nice在編譯時間能夠比現有的物件導向語言檢查出更多的錯誤(null 指標訪問(null pointer accesses),類型轉換異常(cast exceptions))。這意味著使用Nice編寫的程式將不再拋出聲名狼藉的NullPointerException和ClassCastException。這方面的詳細資料可參閱http://nice.sf.net/safety.html。

模組化結構



在物件導向語言中,能夠向已存在的類繼承結構中加入一個新類。在Nice中,還可以在不修改源檔案的情況下向已有類添加新方法,而這是多元方法(multi-methods)的一種特殊情況。

表達力



使用Nice的進階特性可以避免許多重複的編程任務。你是否曾經厭惡過編寫成堆的迴圈、類型轉換、使用預設值的重載方法……?


 

第二章 包
包是一組相關聯的類、方法和變數。你可以用下面的語句在一個.nice檔案中聲明一個包下所有的代碼:

package package-name;



可以使用import語句將另一個包中的所有公有元素匯入:

import package-name;



請注意這一點與Java稍微有些區別。在Java中可以獨立地匯入一個包中的類。在Nice中方法可以在類之外聲明,所以必須匯入整個包以確定一個類中的可用方法。這點意味著Nice項目必須以比Java更小的、完整的包進行設計。

如上所述,只有整個包能被匯入,而單個類卻不行。同樣,在包名後不需要像Java中那樣使用.*。事實上,使用.*說明你是想匯入一個Java包而不是Nice包。詳情請參閱“與Java互動”一部分。
main方法
在包中包含了一個方法,它的名字為main,傳回值是void,並接受一個String[]類型的參數。這個方法很特殊,它所在的程式將由這個main方法開始執行。運行時系統將把命令列參數傳給main方法。

請注意,由於Nice中主要的代碼單元是包而不是類,因此main方法必須在任何類以外實現。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.