제가 안드로이드에 Kotlin을 썼어요.
Kotlin이란 무엇입니까?
https://kotlinlang.org/
Java와 다른 점
작법이 다르다
public int i = 1;
public MyObject obj = new MyObject();
변수kt var i = 1
val obj = MyObject() <- newが必要ない
public String getFoo(){
return "foo";
}
방법kt fun getFoo() : String {
return "foo"
}
public class MainActivity extends BaseActivity implements Listener {
...
}
학급.ktclass MainActivity : BaseActivity(), Listener {
...
}
유형 추정
public int i = 1;
public double d = 2.0;
public String str = "foo"
유형 추정.kt var i = 1
var d = 2.0
var str : String = "foo" <- 型を宣言することもできる
i = str <- コンパイルエラー(一度型が確定したら変えられない)
var useCase = WifiStateUseCase()
var flag = usecase.checkWifiStatus() <- boolean?Int?
val
val.java
public final String str = "foo"
val.kt val str = "foo"
str = "bar" <- コンパイルエラー
빈 안전
null 안전.java
public String str = null; <- OK
int i = str.length; <- nullPointerException
null 안전.kt var str : String? = null
var i = str?.length <- nullが入る(落ちない)
//var nonNull : String = null <- 1.コンパイルエラー
var nullable : String? = null <- 通る
//var nonNull : String = nullable // <- 2.コンパイルエラー
//var i = nullable.length <- コンパイルエラー
var i = nullable?.length <- Int?型が返る(nullになる)
var ii = i++ <- iはnullableなので、コンパイルエラー
var i2 = nullable!!.length <- nullPointerException
제가 안드로이드에 Kotlin을 썼어요.
여기 너무 좋아요.
override fun save(wifiState: WifiState) {
Realm.getDefaultInstance().use { realm ->
realm.beginTransaction()
wifiState.id = getNextId()
realm.copyToRealm(wifiState)
realm.commitTransaction()
}
}
변수, 방법이 모두 갖추어져 있어 보기 쉽다
상대할 수 없다
느끼다
총결산
Reference
이 문제에 관하여(제가 안드로이드에 Kotlin을 썼어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/eijenson/items/b93a439565eb9390b880텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)