この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン | 次のリビジョン 両方とも次のリビジョン | ||
ch_syntax [2020/07/11 04:48] klab [プログラミングとは] |
ch_syntax [2020/07/11 04:49] klab [メッセージ送信] |
||
---|---|---|---|
ライン 72: | ライン 72: | ||
メッセージ送信によりオブジェクトのメソッドを呼び出すとき、必要に応じて追加の情報を渡すことができる。これをメソッド呼び出しの**パラメータ**と呼ぶ。ドリトルでは、パラメータはメソッド名の**前に**書くことになっている。 | メッセージ送信によりオブジェクトのメソッドを呼び出すとき、必要に応じて追加の情報を渡すことができる。これをメソッド呼び出しの**パラメータ**と呼ぶ。ドリトルでは、パラメータはメソッド名の**前に**書くことになっている。 | ||
- | {{:pasted:20180103-210210.png}} | + | {{:pasted:20180103-210210.png?400}} |
たとえば、ボタンのメソッド「作る」には、パラメータとしてボタンに表示するラベルの**文字列**を渡すことができる。先のプログラムをそのように直してみる。 | たとえば、ボタンのメソッド「作る」には、パラメータとしてボタンに表示するラベルの**文字列**を渡すことができる。先のプログラムをそのように直してみる。 | ||
ライン 90: | ライン 90: | ||
上の例のように、メソッドのパラメータは複数個指定してもよい。では、並んでいるものがメソッドの名前なのかパラメータなのかはどうやって分かるのだろうか? 実は、「!」の右側ではすべての名前はメソッド名として扱われる。「" "」で囲まれた文字列や、「100」などの数値はメソッド名ではないのでパラメータになる。変数名を指定したいときは、変数名を「()」で囲んで「(x)」などのように指定する(後の節で詳しく説明する)。 | 上の例のように、メソッドのパラメータは複数個指定してもよい。では、並んでいるものがメソッドの名前なのかパラメータなのかはどうやって分かるのだろうか? 実は、「!」の右側ではすべての名前はメソッド名として扱われる。「" "」で囲まれた文字列や、「100」などの数値はメソッド名ではないのでパラメータになる。変数名を指定したいときは、変数名を「()」で囲んで「(x)」などのように指定する(後の節で詳しく説明する)。 | ||
- | {{:pasted:20180103-210229.png}} | + | {{:pasted:20180103-210229.png?400}} |
メッセージのカスケードがある場合、変数に格納される値(メッセージ送信式全体の値)は、一番最後のメソッドが返した値になる。上のプログラムの場合、メソッド「位置」はボタンの位置を変更した後、そのボタンオブジェクト自体を返すので、変数「ボタン1」に格納される値は先のプログラムと同じである。 | メッセージのカスケードがある場合、変数に格納される値(メッセージ送信式全体の値)は、一番最後のメソッドが返した値になる。上のプログラムの場合、メソッド「位置」はボタンの位置を変更した後、そのボタンオブジェクト自体を返すので、変数「ボタン1」に格納される値は先のプログラムと同じである。 |