オフィスアワーがそろそろ始まるよ!()

困った時には

コンパイルエラーが発生したら

プログラムを書くと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コマンドでエラーコードを与えます。

$ 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言語のサポートを行っています。

このドキュメントの内容を読まれても問題が解決しない場合はこちらのサポートページをご覧になってください。

Chapter 1

Chapter 2

Chapter 3

Chapter 4

Chapter 5

Chapter 6

Chapter 7

Chapter 8

Chapter 9

Chapter 10

Chapter 11

Chapter 12

Chapter 13

Chapter 14

Chapter 15

Appendix

Error Explanation

☰ 人の生きた証は永遠に残るよう ☰
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.