84121


[関数に引数を入れた場合、リスト型なら更新されるが、int型だとなぜか更新されない。](https://ja.stackoverflow.com/questions/84107/%e9%96%a2%e6%95%b0%e3%81%ab%e5%bc%95%e6%95%b0%e3%82%92%e5%85%a5%e3%82%8c%e3%81%9f%e5%a0%b4%e5%90%88-%e3%83%aa%e3%82%b9%e3%83%88%e5%9e%8b%e3%81%aa%e3%82%89%e6%9b%b4%e6%96%b0%e3%81%95%e3%82%8c%e3%82%8b%e3%81%8c-int%e5%9e%8b%e3%81%a0%e3%81%a8%e3%81%aa%e3%81%9c%e3%81%8b%e6%9b%b4%e6%96%b0%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84)

上記の記事からdartで文字列を引数に入れた状態で実行すると値渡しになることが分かりました。  
上記の結果を参照渡しにして、B().bを6にすることは可能でしょうか？

[code]

    class B {
      var b = 3;
      
      void bMethod(int b_arg){
        b_arg = 6;
      }
    }
    
    void main() {
      B().bMethod(B().b);
      print(B().b); // 3
    }
    
[/code]


CC BY-SA 4.0
2021-12-13T17:06:25.123
84115
2021-12-15T15:49:29.540
36424
question
flutter dart
文字列や数値を引数に取った場合に値渡しではなく、参照渡しで実行できるようにしたい。


クラスであれば、参照渡しなので、bMethodにクラスごと渡しています。

[code]

    class B {
      var b = 3;
      
      void bMethod(B b){
        b.b = 6;
      }
    }
    
    void main() {
      var b = B();
      b.bMethod(b);
      print(b.b);
    }
    
[/code]

質問者さんがあげたコードだとインスタンス化しても、変数にいれていないので、うまくうごきませんね。

`static`を使ったコードもありますが、これは使いどころがかなり限られてくるので、完全に理解していなければ、使用しない方がいいと思います。

[code]

    class B {
      static var b = 3;
      
      static void bMethod(){
        B.b = 6;
      }
    }
    
    void main() {
      print(B.b);
      B.bMethod();
      print(B.b);
    }
    
[/code]

他の例

[code]

    class B {
      var value = 3;
      
      void changeValue(){
        value = 6;
      }
    }
    
    void main() {
      var b = B();
      print(b.value);
      b.changeValue();
      print(b.value);
    }
    
[/code]


CC BY-SA 4.0
2021-12-14T01:32:05.247
84121
2021-12-14T01:38:36.300
2021-12-14T01:38:36.300
40856
40856
84115
answer


もちろん可能です、ちょっとコードを変えればね。

staticを使います：

[code]

    class B {
      static var b = 3;
      
      void bMethod(int b_arg){
        B.b = 6;
      }
    }
    
    void main() {
      B().bMethod(B().b);
      print(B().b); // 6
    }
    
[/code]

ただこれだけ。


CC BY-SA 4.0
2021-12-15T15:49:29.540
84153
2021-12-15T15:49:29.540
41314
84115
answer