Skip to content

Instantly share code, notes, and snippets.

Jarno Walgemoed jwalgemoed

Block or report user

Report or block jwalgemoed

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View measuretimeContract.kt
@ExperimentalContracts
fun main(args: Array<String>) {
var assign: String
val time = measureTimeMillis {
assign = "Value Assigned"
}
println("$time ms. spent assigning: '$assign'")
}
@ExperimentalContracts
View measuretime.kt
fun main(args: Array<String>) {
var assign: String
val time = measureTimeMillis {
assign = "Value Assigned"
}
println("$time ms. spent assigning: '$assign!!'")
}
private inline fun measureTimeMillis(block: () -> Unit): Long {
val start = System.currentTimeMillis()
View contract.kt
contract {
returns(true) implies (this@isComplete != null)
}
View withcontract.kt
@ExperimentalContracts
fun User?.isComplete(): Boolean {
contract { returns(true) implies (this@isComplete != null) }
return this != null && this.isValid()
}
View usage2.kt
fun printUserDetails(user: User?) {
if(user.isComplete()) {
println("${user!!.name} ${user!!.email}")
}
}
View use.kt
fun printUserDetails(user: User?) {
if(user?.isValid()) {
println("${user.name} ${user.email}")
}
}
View userclass.kt
data class User(val name: String?, val email: String?) {
fun isValid() = !name.isNullOrBlank() && name.length > 3
&& !email.isNullOrBlank() && email.length > 3
}
View method.java
var variable = returnValue(); // Type is inferred from the return type of the method
// Method declaration
public String returnValue() {
return "w00p";
}
View example3.java
var strings = Arrays.asList("a", "b", "c");
for(var str: strings) {
System.out.println(str);
}
View interface.java
// We can explicitly work against interfaces
List<String> list = new ArrayList(); // type: List<String>
// Using var, we can't do this without casting
var list = new ArrayList<String>(); // Inferred type ArrayList<String>
var list = (List)new ArrayList<String>(); // Inferred type List<String>
You can’t perform that action at this time.