■
class Person { String : word; String : say(); } say(p@Person) { return p.word; } void main(String[] args) { let p = new Person(word: "Hello, world"); System.out.prinln(p.say()); }
JAVAの拡張だけあって、JAVAで出来ることは殆どすべて出来る。(多分)
実際、niceのコンパイラが生成するのはjavaのclassファイル。
- Niceのソースファイルの拡張子は .nice
- main関数は、特定のクラスに属さ無くても良い。
- class定義の外でクラスのメソッドを追加できる。(dispatch)
- コンストラクタはない。代わりに名前付パラメータを引数にする。
コンパイルの仕方がちょっと特殊なのでメモしておく。
# ソース・ディレクトリを作成。 # 名前は何でも良いが、nice/langがコンパイル時に作られるので、 # 纏めておくといいかもしれない。分けたい場合は他の名前にする。 > mkdir -p nice/my/program # ソースの作成/保存 vi ./nice/my/program/Person.nice # コンパイル > nicec --source-path=nice my.program # jarファイルの作成 > nicec --source-path=nice -a program.jar my.program # 実行(javaと同じ) > java -jar program.jar