プログラムを書くとZenのコンパイルエラーに遭遇することがあるでしょう。 例えば、次のコードをビルドするとコンパイルエラーが発生します。
pub fn main() void {
i;
}
エラー発生時にはエラーコードとエラーメッセージが出力されます。
下記でE07002
がエラーコード、use of undeclared identifier 'i'
がエラーメッセージです。
$ zen run main.zen
main.zen:2:5: error[E07002]: use of undeclared identifier 'i'
i;
~
エラーメッセージは日本語に切り替えることもできます。 ターミナルの言語を日本語に切り替えてZenコンパイラを使用して下さい。 例えば、Linuxでは次の通りです。
$ LANG=ja zen run main.zen
main.zen:2:5: エラー[E07002]: 未宣言の識別子「i」が使用されています。
i;
~
本書内では、エラーメッセージは英語のものを掲載しています。
さらにエラーの詳細を知りたい場合には、zen explain
コマンドでエラーコードを与えます。
$ zen explain E07002
In Zen, you have to declare an symbol before it is used. Declaring a symbol
can be done with either the var or const keyword:
var name: Type = value;
const name: Type = value;
Symbols only exists in the scope they're declared in. Scopes can have
child scopes. Child scopes can access the symbols of its parent:
const a = 0;
const b = a;
const c = q; // error[E07002]
{
const q = a;
const z = b;
const x = l; // error[E07002]
}
zen explain
の表示も日本語に切り替えることができます。
$ LANG=ja zen explain E07002
Zenでは、変数名や関数名などのシンボルは使用する前に宣言しなければなりません。
宣言は、varもしくはconstキーワードのどちらかを使います。
var var_val: Type = value;
const const_val: Type = value;
シンボルは宣言されたスコープ内でのみ有効です。
スコープは子スコープを持つことができます。
子スコープからは親スコープのシンボルにアクセスできます。
const a = @to(u32, 0);
const b = a;
const c = q; // error [E07002]
pub fn main() void {
const q = c;
const z = b;
const x = l; // error [E07002]
}
コネクトフリー株式会社ではZen言語のサポートを行っています。
このドキュメントの内容を読まれても問題が解決しない場合はこちらのサポートページをご覧になってください。
☰ 人の生きた証は永遠に残るよう ☰
Copyright © 2018-2020 connectFree Corporation. All rights reserved. | 特定商取引法に基づく表示
Zen, the Zen three-circles logo and The Zen Programming Language are trademarks of connectFree corporation in Japan and other countries.