<aside> π‘ contract μ½λλ₯Ό μ»΄νμΌλ¬μκ² λ―Έλ¦¬ μ΄ν΄μμΌμ£ΌκΈ° μν΄ μ¬μ©
</aside>
contract κ° ν¬ν¨λ ν¨μλ₯Ό νΈμΆν λ€μλΆν°λ contract μ μ μν 쑰건μ κ³μ λͺ
μνμ§ μμλ λ¨β κ·Έλμ μ°λ¦¬κ° νΈνκ² μ€μ½ν ν¨μλ₯Ό μ¬μ©ν μ μμ
β μ€μ½ν ν¨μμ ν¨κ» λ 체ν¬λ ν μ μμ
<aside> π‘ @ExperimentalContracts == contractλ₯Ό μ¬μ©νλ ν¨μμ νκΈ°
@ExperimentalContracts
fun isNotNullAndReturnBoolean(value: Any?): Boolean {
contract {
returns(true) implies (value != null) // valueκ° nullμ΄ μλλ©΄, trueλ₯Ό 리ν΄νλ©΄μ μ»΄νμΌλ¬μκ² valueκ° nullμ΄ μλμ μ΄ν΄μμΌμ€.
}
return value != null
}
</aside>
<aside> π‘ contract{} μ returns λ μ€μ μ½λ λμμ λ°μλλκ²μ΄ μλλΌ μ»΄νμΌλ¬μκ² κ²°κ³Όλ₯Ό μ νκΈ° μν¨
</aside>
contractλ boolean, null μ λ°νν μ μμreturns κ° λΉμ΄μλ κ²½μ° nullμ λ°ν