なでしこを明後日の方向に

日本語プログラム言語なでしこを応援しています

なでしこで使える記号のまとめ

プログラムの記号の意味を検索で調べるのは地味につらい……!
というわけで記号の一覧表を作ってみることにしました。

なでしこでは「半角と全角の記号は同じ」でどちらを使ってもかまいません。
ここでは全角記号で表記します。

ワイルドカード正規表現、形式指定は含みません。


・四則演算、ビット演算、論理演算(比較)

記号 用途
代入
+-*/ 四則演算
割ったあまり
累乗
<< 左シフト演算
>> 右シフト演算
&& AND演算
|| OR演算

シフト演算の優先順位に注意。 足し算よりあとに実行される。

記号 用途
比較:大きい
比較:小さい
>= 比較:以上
<= 比較:以下
比較:以上
比較:以下
== 比較:等しい
比較:等しい(もし~ならばの間でのみ)
比較:等しくない
!= 比較:等しくない

真ならば1を返す。 偽は0を返す。


マニュアル:単語の切り分けと種類より

記号 用途
コメント(行末まで)
コメント(行末まで)
コメント(行末まで)
// コメント(行末まで)
/*  */ コメント(複数行・範囲)

おそらく//、/* */ は半角で書く人が多いと思う。


マニュアル:文字列の指定より

記号 用途
「文字列」 文字列 (変数展開あり)
"文字列" 文字列 (変数展開あり) 
『文字列』 文字列 (変数展開なし)
‘文字列‘ 文字列 (変数展開なし)
文字列の連結
記号 用途
「{xxxx}」 文字列中の変数を展開
「{¥xxxx}」 アスキーコードの直接埋め込み(xxxxは数値)

マニュアル:ユーザー定義命令より 関数の宣言関連

記号 用途
●関数名(引数を) 関数の宣言
*関数名(引数を) 関数の宣言
●関数名({参照渡し}引数を) 引数の参照渡し
●関数名({=?}引数を) 省略可能な引数
●関数名({=1}引数を) 引数省略時の初期値
●関数名({グループ}引数を) 引数の型をグループにするとき

*は●とほぼ同じ。
なでしこエディタの[関数列挙]で*は引っかからない。

記号 用途
変数名はイベント イベントの設定
変数名とは変数 セッター セッターの設定
変数名とは変数 ゲッター ゲッターの設定

~(チルダ)は ~ の半角あつかい。
「→」はグループメンバのアクセスにも使われる。


マニュアル:グループ分け(オブジェクト指向ライク)より
・グループの宣言、メンバ

記号 用途
■グループ名 +ミックスグループ名 グループの宣言、ミックスグループ
 ・メンバ名  メンバの宣言
 ・メンバ名 ←セッター →ゲッター メンバにセッターゲッターを設定

・グループのメンバへのアクセス

記号 用途
グループ名のメンバ名 「の」でメンバ変数にアクセス
グループ名.メンバ名 「.」でメンバ変数にアクセス
グループ名→メンバ名 「→」でメンバ変数にアクセス
グループ名@「メンバ名」 「@」でメンバ変数にアクセス

「@」はハッシュの記号としても使われる。

機能の違い・使い分け
「の」はプログラム起動時にメンバのチェックを行う。
「.」はプログラム起動時にメンバのチェックを行う。(「の」と同じ)
「→」はプログラム起動時にメンバのチェックを行わない。
「@」はプログラム起動時にメンバのチェックを行わない。
「@」はメンバ名を変数で指定できる。(ほかのアクセス方法ではムリ)

動的生成(~を~として作成)をした場合はとりあえず「→」を使っておけばOK。

余談:グループには「イベント部品」「自身」という予約語がある。
「イベント部品→テキスト」とか「自身→テキスト」みたいに使う。


マニュアル:配列変数とハッシュより

記号 用途
配列変数[1] 配列要素へのアクセス
配列変数¥1 配列要素へのアクセス
二次元配列[1][2] 配列要素へのアクセス
二次元配列¥1¥2 配列要素へのアクセス
二次元配列[1,2] 配列要素へのアクセス
二次元配列¥1,2 配列要素へのアクセス

機能の違いはないので、お好みで。

・ハッシュ

記号 用途
ハッシュ記号(変数名@ハッシュキー)

「@」はハッシュ(辞書)のほか、グループメンバの参照でも使う。


プリプロセス命令

記号 用途
プリプロセス命令

使用例のほうがわかりやすい。

使用例 用途
!「nakonet.nako」を取り込む プラグイン(nakoファイル)を取り込む
!変数宣言が必要 宣言しなかった変数があるとエラーになる
!変数宣言が不要 未定義の変数があってもOK(初期状態)
!変数初期化が必要 変数初期化の強要
!変数初期化が不要 変数初期化の強要を解除(初期状態)
!変数名 = 32 グローバルな定数の宣言
!母艦設計=「//プログラム文字列」 母艦が表示される前に実行するプログラムを書く
!Sにネームスペース変更 名前空間を変更する

・その他

記号 用途
16進数($FFで255など)
次の行に続く(行末に書いた時)
文章区切り
文章区切り
「飛ぶ」命令に使うラベル
ネームスペース
記号 用途
雰囲気づくり(意味なし)

「?」は下記のような書き方を想定している。

「設定.ini」存在する?
もしそうならば「設定.ini」開く。

間違いや抜けている記号があったら変更していきます。