yasushicohiのやんややんや

記事にするまでもないつぶやき、ありふれた想い、TIL。ブログ: https://yasushicohi.com

TIL 2021/01/15

PullRequestの出し方は気をつけようと思った。人に読んでもらうために。
コメントとか、実はcommitのしていき方とかの作業で、めちゃくちゃ決まるんだろうな。

あともうちょっと議論していった方がいいなぁと思いました。なんか変な動作に一生苛まれるんだよねぇ。そこでウロウロしているから時間がなくなってしまう。

 

data class のcopyが実はよくわかっていない。

ちょっと勉強する。

⬇︎が全てだった。

データクラス - Kotlin Programming Language

コピー 

プロパティの いくつか を変更し、残りをそのままにしてオブジェクトをコピーする、ということが必要になるのはよくあることです。これが copy() 関数が作成される理由です。次のような User クラスの場合、その実装は次のようになります。

fun copy(name: String = this.name, age: Int = this.age) = User(name, age)     

これは次のように書くことができます:

val jack = User(name = "Jack", age = 1)
val olderJack = jack.copy(age = 2)

 

 

他にどういう時にコピーしたいのだろう

deep copyshallow copy

シャローコピー(浅いコピー)はプリミティブ値(文字列、数値、真偽値、null、undefined、Symbol)をコピーするが、それ以外のオブジェクトは参照をコピーする。参照がコピーされるということは、コピー元とコピー先でオブジェクトが共有されるということである。
一方、ディープコピー(深いコピー)はプリミティブ値だけでなく、オブジェクトも値としてコピーする。したがって、コピー元とコピー先のオブジェクトは別物である。