5. C#
5
Kotlin
var name = "";
...
if (name != null) {
}
var member = existing ?? new Person();
var name = ""
name = null // NOPE!
var name : String? = ""
var member = existing ?: Person()
6. C#
6
Kotlin
var person = new Person();
...
if (person?.name != null) {
}
var person? = Person()
...
if (person?.name != null) {
}
var s : String? = null
println(s.length) // won’t compile
println(s?.length) // null
println(s!!.length) // NPE
7. JavaScript
7
Kotlin
let numbers = [1, 5, 6, 7, 8];
let evens = numbers
.filter(num => num % 2 === 0);
val numbers = listOf(1, 5, 6, 7, 8)
var evens = numbers
.filter({ num -> num % 2 == 0 })
evens = numbers.filter({ it % 2 == 0 })
9. C#
9
Kotlin
throw new Exception();
// compiler will tell you this won’t
execute
void start() {
while (true) {
...
}
}
start();
// compiler totally happy
fun start():Nothing {
while (true) {
...
}
}
start()
// compiler will tell you this won’t
execute onwards!
10. Java
10
Kotlin
public class Person {
private String name;
private int age = 0;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
if (name != null ? !name.equals(person.name) : person.name != null) return false;
if (age != 0 ? age != person.age : person.age != 0) return false;
}
@Override
public int hashCode() {
11. public class Person {
private String name;
private int age = 0;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
if (name != null ? !name.equals(person.name) : person.name != null) return
false;
if (age != 0 ? age != person.age : person.age != 0) return false;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + age;
return result;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + ''' +
", age='" + age + ''' +
'}';
}
}
12. C#
12
Kotlin
class Person
{
public int Age {get; set;}
public string Name {get; set;}
public Person(int Age, string Name){
this.Age = Age;
this.Name = Name;
}
}
13. Java
13
Kotlin
public class Person {
private String name;
private int age = 0;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
if (name != null ? !name.equals(person.name) : person.name != null) return false;
if (age != 0 ? age != person.age : person.age != 0) return false;
}
@Override
public int hashCode() {
data class User(val name: String, val age: Int)