タグ: ByRef

  • [言語比較]ByVal : コピーした値を受け取る

    [言語比較]ByVal : コピーした値を受け取る

    Lotus Script 言語

    • 値のありかを受け取る ByRef(参照渡し)が規定ですが、わざわざ ByRef と明記するとエラーになります
    • ByVal と記載するとコピーされた値を受け取ることができます(値渡し)

    VbScript 言語

    • 値のありかを受け取る(参照渡し)が規定です。わざわざ ByRef と明記することができます
    • ByVal と記載するとコピーされた値を受け取ることができます(値渡し)
  • [言語比較]Class : クラスをつくる

    [言語比較]Class : クラスをつくる

     Lotus Scriptのクラスは、VBScriptと異なっているところが多いです。

    Lotus Script 言語

    Class クラス名 As 元クラス ’別のクラスから引き継ぐことができます

     ’最初に実行されます
     Sub New (変数名 As 型).元クラス (変数名 As 型) ’値を受け取ることができます
     End Sub

     ’最後に実行されます
     Sub Delete ()
     End Sub

     Public Sub 戻り値がない関数名 (変数名 As 型)
     End Sub

     Public Function 戻り値がある関数名 (変数名 As 型) As 型
      Me.戻り値がある関数名 = 戻り値 ’値を返します
     End Function

     Public Property Set プロパティ名 As 型
      変数名 = Me.プロパティ名 ’値を受け取ります
     End Property

     Public Property Get プロパティ名 As 型
      Me.プロパティ名 = 戻り値 ’値を返します
     End Property

    End Class

     何も指定しないと Private、ByRef になります。
     現在のクラスのなかで現在のクラスで定義された関数・プロパティ・変数を使うには、名前の先頭に Me. をつければOKです

    VbScript 言語

    Class クラス名 ’独立したクラスとして作成します

     ’最初に実行されます
     Sub Class_Initialize () ’値を受け取れません
     End Sub

     ’最後に実行されます
     Sub Class_Terminate ()
     End Sub

     Sub 戻り値がない関数名 (変数名)
     End Sub

     Function 戻り値がある関数名 (変数名)
      戻り値がある関数名 = 戻り値 ’値を返します
     End Function

     Public Property Set プロパティ名 ’Set はオブジェクトを受け取ります
      Set 変数名 = プロパティ名 ’値を受け取ります
     End Property

     Public Property Let プロパティ名 ’Let はオブジェクト以外を受け取ります
      変数名 = プロパティ名 ’値を受け取ります
     End Property

     Public Property Get プロパティ名
      プロパティ名 = 戻り値 ’値を返します
     End Property

    End Class

     なにも指定しないと Public、ByRef になります。
     現在のクラスで定義されたプロパティをつかうときに、名前の先頭に Me. をつけるときがあります

  • [言語比較]Call : 関数を呼ぶ

    [言語比較]Call : 関数を呼ぶ

    Lotus Script 言語

    () は省略できることが多いです
    Call を省略するときは () も省略します
    Call だけ省略し () を付けると、意味が変わります
    次のとおり色々な書き方ができます

    受け渡し値がないとき

    • Call 関数名 ()
    • Call 関数名
    • 戻り値 = 関数名 ()
    • 戻り値 = 関数名
    • 関数名

    受け渡し値があるとき(関数側の ByVal/ByRef 設定どおり)

    • Call 関数名 (受け渡し値)
    • Call 関数名 受け渡し値
    • 戻り値 = 関数名 (受け渡し値)
    • 関数名 受け渡し値

    これはエラーになります

    • 戻り値 = 関数名 受け渡し値

    受け渡し値があるとき(常に ByVal を強制)

    • 関数名 (受け渡し値) ’ Call を省略して () を付けます

    VbScript 言語

    Call を付けるときは () も付けます
    Call を省略するときは () も省略します
    Call だけ省略し () を付けると、意味が変わります
    次のとおり色々な書き方ができます

    受け渡し値がないとき

    • Call 関数名 ()
    • 戻り値 = 関数名 ()
    • 関数名

    受け渡し値があるとき(関数側の ByVal/ByRef 設定どおり)

    • 戻り値 = 関数名 (受け渡し値)
    • Call 関数名 (受け渡し値)
    • 関数名 受け渡し値

    受け渡し値があるとき(常に ByVal を強制)

    • 関数名 (受け渡し値) ’ Call を省略して () を付けます

    クラスの値を受け渡すと動作が変わります(アクセス権がどうの)

    クラス名.パラメータ = 値
    関数名 (クラス名.パラメータ) ’ クラス名.パラメータの値は変化しません