https://paiza.io/ja ← サイトを開いてください。
このページでは「引数にインスタンスを利用する」を学習したいと思います。
変数を引数にする
fun main() { var a:Int = 10 var b:Int = 20 p( a , b ) } fun p( a:Int , b:Int ) { println( a + b ) }
インスタンスを引数にする
fun main() { val A:Data = Data() p( A ) } fun p( B:Data ) { println( B.a + B.b ) } class Data { var a:Int = 10 var b:Int = 20 }
注意点
コピーしたインスタンスは同期しています。
【変数のコピー】
fun main() { var a:Int = 10 println( a ) var b:Int = a b = 100 println( a ) println( b ) }
【インスタンスのコピー】
fun main() { val A:Data = Data() println( A.a ) val B:Data = A B.a = 100 println( A.a ) println( B.a ) } class Data { var a:Int = 10 }
【引数も同期される】
fun main() { val A:Data = Data() println( A.a ) p( A ) println( A.a ) } fun p(B:Data){ println( B.a ) B.a = 100 println( B.a ) } class Data { var a:Int = 10 }
まとめ
・ 「関数の引数にインスタンスを渡す」を学びました。
・ クラスの型を宣言してあげる必要があります。 ( 省略不可 )
・ インスタンスをコピーすると同期されます。(シンクロしてる)