(μ΄νν°λΈ μ½νλ¦°) λΆκ³΅λ³μ±(invariance), 곡λ³μ±(covariance), λ°κ³΅λ³μ±(contvariance)
- λΆκ³΅λ³μ±μ μ΄λ€ νμ λ λͺ¨λ νμ©νλ€.
- 곡λ³μ±μ μμ κ³Ό λΆλͺ¨νμ λ§ νμ©νλ€. produce, μμ°μ κ°λ , read-only
- λ°κ³΅λ³μ±μ μμ κ³Ό μλΈνμ λ§ νμ©νλ€. consume, μλΉμ κ°λ , write-only
type-safe ν μ½νλ¦°μ κ²½μ° μ λ€λ¦ μ¬μ© μ μ κ°λ μ μ μ©νλ©΄ μ’ λ μ μ°νκ³ μμ μ μΈ μ½λ μμ±μ΄ λ μ μλ€κ³ νλ€. λν μΌν μμλ κΉνμ μ 리ν΄λμλ€.
(μ΄νν°λΈ μ½νλ¦°) equals μλ λκ°μ§κ° μλ€. ꡬ쑰μ λλ±μ±κ³Ό λ νΌλ°μ€μ λλ±μ±
- ꡬ쑰μ λλ±μ±μ ν΄λμ€ λ΄ λ©€λ²νλκ° λμΌνκ² μμ±λμλκ°λ₯Ό νλ¨νλ€. μ½νλ¦°μμ '==' λ₯Ό μ¬μ©νλ€.
- λ νΌλ°μ€μ λλ±μ±μ λΉκ΅ λμμ΄ λλ λ κ°μ ν΄λμ€κ° κ°λ¦¬ν€λ κ°μ²΄κ° λμΌνμ§ νλ¨νλ€. '===' λ₯Ό μ¬μ©νλ€.
data class Player(
val name: String,
val age: Int,
val gender: Gender
) {
enum class Gender {
M, W
}
}
fun main() {
val player1 = Player("park", 10, Player.Gender.M)
val player2 = Player("park", 10, Player.Gender.M)
val player1Reference = player1
// ꡬ쑰μ λλ±μ± : ==
println("ꡬ쑰μ λλ±μ±")
println(player1 == player2) // true
println(player1 == player1Reference) // true
// λ νΌλ°μ€μ λλ±μ± : ===
println("λ νΌλ°μ€μ λλ±μ±")
println(player1 === player2) // false
println(player1 === player1Reference) // true
val player3 = player1.copy(name = "kim")
println("ν
μ€νΈ")
println(player1 == player3) // false
println(player1 === player3) // false
}
base64/base32
λ°μ΄λ리 λ°μ΄ν°λ₯Ό ν μ€νΈλ‘ λ³ννλ μΈμ½λ© κΈ°λ²μ΄λ€. μ΄ λ μΈμ½λ©μ μ΄μ©λλ λ¬Έμμ΄μ μ ν΄μ§ US-ASCII 64κ°μ λ¬Έμμ΄μ κ°μ§κ³ μΈμ½λ©μ μννλ€. source μ λ°μ΄λ리 λ°μ΄ν°λ₯Ό 6λΉνΈμ© μλΌμ 64κ°μ λ¬Έμμ΄μ 맀νμμΌμ μΈμ½λ©μ μννλ€. νμ§λ§ λ°μ΄λ리 λ°μ΄ν°κ° ν° κ²½μ°μ μν€νΌμ , 33~37% μ λμ λ°μ΄ν° μ€λ²ν€λκ° λ°μνλ€κ³ νλ€.
λ°μ΄ν° μ€λ²ν€λκ° λ°μλλ μ΄μ λ ν¬κ² λ κ°μ§κ° μ‘΄μ¬νλ€.
- base64 μΈμ½λ©μ 6λΉνΈμ© μλΌμ μ²λ¦¬κ° λλ€. νμ§λ§ λ°μ΄λ리 λ°μ΄ν°λ 8λΉνΈμ© μλΌμ μ²λ¦¬λκΈ° λλ¬Έμ base64 μΈμ½λ© μμλ κΈ°μ‘΄ λ°μ΄λ리 λ°μ΄ν° λλΉ λ λ§μ λ¬Έμκ° μ¬μ©λκΈ° λλ¬Έμ΄λ€.
- base64 μΈμ½λ© λ°μ΄ν°λ κ° λΌμΈ λμ μ€λ°κΏ λ¬Έμκ° μΆκ°λ μ μλ€. 6bit λ₯Ό λͺ ννκ² λλ΄κΈ° μν΄μ '=' λ¬Έμκ° μΆκ°λλ€.
base32 μΈμ½λ©μ 무μμΈκ°? 5λΉνΈμ© μλΌμ 32κ°μ λ¬Έμμ΄μ 맀νλ μΈμ½λ©μ μλ―Ένλ€. base64 μΈμ½λ© κ΄λ ¨λ μΆκ°μ μΈ λ΄μ©μ κΉνμ μ 리ν΄λμλ€.
'Interest > κ°λ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
2024-02 κ°λ° : μν¬λ¦¬ κΈ°λ‘ (1) | 2024.02.20 |
---|---|
2024-01 κ°λ° : μ΅κ·Όμ μκ²λ λ΄μ©λ€ (0) | 2024.01.21 |
2023-11-25 κ°λ° : μ΅κ·Ό μκ²λ λ΄μ©λ€ (0) | 2023.11.25 |
2023-11-19 κ°λ° : μ΅κ·Ό μκ²λ λ΄μ©λ€ (0) | 2023.11.19 |
20201226 λμμ : μννΈμ¨μ΄ μν€ν μ²μ μ€μμ± (0) | 2020.12.26 |