제가 Kotlin을 한 달 동안 썼어요.
Kotlin
iOS를 제일 좋아하는 사람이 한 달 동안 Kotlin을 만져본 결과.
↑ iOS 앱 개발 경력 5년 정도, 자바는 별로 건드리지 않았다.오직 1년의 시간은 안드로이드(Xperia)다.
Kotlin이란 무엇입니까?
JetBrains(IntelliJ의 개발 소스)가 개발한 언어 S6
Java → 컴파일 → Java 바이트 → Android
Kotlin → 컴파일 → Java 바이트 → Android
이렇게 서 있기 때문에 Java와 거의 호환됩니다.
(참고로 JavaScript로 컴파일할 수도 있음)
강력한 IDE
Swift와 Xcode가 강력하듯이 Kotlin도 Android Studio와 함께 매우 강력합니다.
Java와 마찬가지로 import 보조를 할 수 있는 다른 인터페이스의 대량 설정, Kotlin 바람 함수 호출 보조,
Java 파일을 Kotlin으로 변환할 수도 있습니다.
언어 규범
Java에 비해 Swift와 비슷하기 때문에 iOS 엔지니어가 쉽게 착수할 수 있습니다.
그럼에도 불구하고 사실 Kotlin이 먼저 발표했다.
간단한 곳에서 몇 가지를 소개하다
변수 선언
javaJavaObject javaObject = new JavaObject("android");
kotlinval kotlinObject = KotlinObject("android")
유형 추리와 상수 성명, 선택 가능한 정의도 명확하다
상수/변수
var fuga = "neko"
fuga = "inu" //再代入可
val hoge = "neko"
hoge = "inu" //できない
final 을 넣지 않아도 재대입 을 방지할 수 있다
옵션 1
var fuga: String? = "neko"
fuga = null //再代入
var hoge: String = ""
hoge = null //できない
빈 것을 허락하든지 엄격하게 쓰든지
옵션 2
hoge?.anything()
만약 hoge가 비어 있다면 아무 일도 일어나지 않을 것이다
구조 함수 1
constructor() {
//初期化処理
}
초기화할 때 특별히 유명을 쓰지 않아도 된다.
변수 선언과 함께 아주 좋은...
구조 함수 2
class AudioFormat(val type: String) {
}
주구조 함수는 클래스의 성명에 쓸 수도 있고 변수로 설명할 수도 있다.
...이렇게
Try
Kotlin은 어쨌든 분명하게 쓸 수 있다.
간단하게 시도할 수 있다.Java의 자동 변환도 있습니다.
코드를 바꾸고 싶거나 해보고 싶을 때 편해요.
실제 사용이 편리한 녀석
Java 함수 속성 바람 호출
class JavaObject {
String getMessage() {
return "message";
}
void setMessage(String message) {
this.message = message
}
}
이런 방법.javaObject.message //get
javaObject.message = "hello" //set
호출
라이브러리에 Java를 섞어도 Kotlin의 유파를 관철할 수 있습니다.
extension
fun Message.say() {
playVoice()
}
기존 클래스 생성 방법val PreviewActivity.voiceId: Int
get() = 0
속성을 생성할 수도 있습니다 (Swift라면 할 수 없습니다).
언어급 단일 지원
object SingletonClass {
var isFirstLaunch = false
}
class를object로 쓰면 단일화SingletonClass.isFirstLaunch
유명속성
작은 인터페이스 생략
button.setOnClickListener(object :View.OnClickListener {
override fun onClick(v: View?) {
}
})
이렇게 덮어쓰는 인터페이스만 있으면 돼요.button.setOnClickListener {
}
이렇게 생략해도 돼요.
it에서 매개 변수 검색 가능
getter/setter
var messsage: String = ""
set (value) {}
get {}
getter/setter를 명확하게 추가할 수도 있습니다.
setter는 순환하지 않고 field = value
로 설정할 수도 있고 간단한 KVO로 처리할 수도 있습니다.
레이아웃 xml과 협업
<Button android:id = "+@id/button" ~ />
적어 놓으면button.text = ""
이렇게 하면 id 이름의 실례를 정의하지 않고 사용할 수 있다
this@,return@
class A {
val message = "hello"
class B {
val message = "world"
fun action() {
this@A.message
this@B.message
}
}
}
this@ 에서 this의 뜻을 명확하게 표시할 수 있다button.setOnClickListener {
ary.map {
//一気にreturnすることも出来る
return@setOnClickListener
//もちろん普通にreturnも出来る
return@map false
}
}
값을 되돌려야 하는 함수 안에서 어디서든 단숨에 되돌릴 수 있다.
when
val word = when (value) {
0 -> "zero"
1 -> "one"
}
되돌아오는 값을 가진 스위치 같은 녀석
return과closure 모두 사용할 수 있어 사용하기 쉽다
EventBus 등에서 State 관리 시 뷰 모양새 등에 사용when (value) {
o -> "zero"
1,2 -> "one or two"
else -> {
throw new Exception()
}
}
조건 차이도 좋아요.
이거 어떻게 써요?
null의 무보존막 (iflet 맛)
hoge?.let {
it.action()
}
hoge?.let {
it.action()
} ?: run {
//nullの場合
}
이렇게 써도 돼요.
null의 랩(guard 맛)
var hoge = hoge ?: return
리셋 매개변수
fun action(completion: (() -> Unit)? = null)
() -> Unit) 유형으로 선언됩니다.
예를 들어(Int->String) Int를 수신하고 String 콜백으로 돌아갑니다.completion?.invoke()
에 설명된 해당 매개변수의 값입니다.
초기화 규약
private lateinit var message:String
onCreate() {
message = "hello"
}
lateinit를 사용하면 notnull의 전역 변수를 초기화하지 않고 설명할 수 있습니다.
onCreate나 구조 함수를 사용하여 초기화할 수 있다면,null-wrap의 횟수를 줄일 수 있습니다
신경 쓰이는 거.
runtime 크기
이점
컴파일 시간
별로 신경 쓰지 않는 것 같아.이르지도 늦지도 않다
총결산
이점
아무튼 잘 썼어요.
IDE 때문에 실제 학습 비용은 매우 낮음
Java와의 호환성이 높아 프로젝트의 작은 부분에서 쉽게 넣을 수 있음
결점
null를 잘 처리하지 않으면null이 판별하는if문장으로 가득 차 있다
실제로 쓰면 Android Studio가 고정되어 있어요.
비트 연산 등 연산자를 사용할 때 자바가 좋다(toByteArray 또는 모두 접미사)
while 판별식으로 대입할 수 없습니다.while(val hoge = 0) {
//↑できない
}
Slack
Reference
이 문제에 관하여(제가 Kotlin을 한 달 동안 썼어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/noppefoxwolf/items/b2d93f946f158c7b5852
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
JetBrains(IntelliJ의 개발 소스)가 개발한 언어 S6
Java → 컴파일 → Java 바이트 → Android
Kotlin → 컴파일 → Java 바이트 → Android
이렇게 서 있기 때문에 Java와 거의 호환됩니다.
(참고로 JavaScript로 컴파일할 수도 있음)
강력한 IDE
Swift와 Xcode가 강력하듯이 Kotlin도 Android Studio와 함께 매우 강력합니다.
Java와 마찬가지로 import 보조를 할 수 있는 다른 인터페이스의 대량 설정, Kotlin 바람 함수 호출 보조,
Java 파일을 Kotlin으로 변환할 수도 있습니다.
언어 규범
Java에 비해 Swift와 비슷하기 때문에 iOS 엔지니어가 쉽게 착수할 수 있습니다.
그럼에도 불구하고 사실 Kotlin이 먼저 발표했다.
간단한 곳에서 몇 가지를 소개하다
변수 선언
javaJavaObject javaObject = new JavaObject("android");
kotlinval kotlinObject = KotlinObject("android")
유형 추리와 상수 성명, 선택 가능한 정의도 명확하다
상수/변수
var fuga = "neko"
fuga = "inu" //再代入可
val hoge = "neko"
hoge = "inu" //できない
final 을 넣지 않아도 재대입 을 방지할 수 있다
옵션 1
var fuga: String? = "neko"
fuga = null //再代入
var hoge: String = ""
hoge = null //できない
빈 것을 허락하든지 엄격하게 쓰든지
옵션 2
hoge?.anything()
만약 hoge가 비어 있다면 아무 일도 일어나지 않을 것이다
구조 함수 1
constructor() {
//初期化処理
}
초기화할 때 특별히 유명을 쓰지 않아도 된다.
변수 선언과 함께 아주 좋은...
구조 함수 2
class AudioFormat(val type: String) {
}
주구조 함수는 클래스의 성명에 쓸 수도 있고 변수로 설명할 수도 있다.
...이렇게
Try
Kotlin은 어쨌든 분명하게 쓸 수 있다.
간단하게 시도할 수 있다.Java의 자동 변환도 있습니다.
코드를 바꾸고 싶거나 해보고 싶을 때 편해요.
실제 사용이 편리한 녀석
Java 함수 속성 바람 호출
class JavaObject {
String getMessage() {
return "message";
}
void setMessage(String message) {
this.message = message
}
}
이런 방법.javaObject.message //get
javaObject.message = "hello" //set
호출
라이브러리에 Java를 섞어도 Kotlin의 유파를 관철할 수 있습니다.
extension
fun Message.say() {
playVoice()
}
기존 클래스 생성 방법val PreviewActivity.voiceId: Int
get() = 0
속성을 생성할 수도 있습니다 (Swift라면 할 수 없습니다).
언어급 단일 지원
object SingletonClass {
var isFirstLaunch = false
}
class를object로 쓰면 단일화SingletonClass.isFirstLaunch
유명속성
작은 인터페이스 생략
button.setOnClickListener(object :View.OnClickListener {
override fun onClick(v: View?) {
}
})
이렇게 덮어쓰는 인터페이스만 있으면 돼요.button.setOnClickListener {
}
이렇게 생략해도 돼요.
it에서 매개 변수 검색 가능
getter/setter
var messsage: String = ""
set (value) {}
get {}
getter/setter를 명확하게 추가할 수도 있습니다.
setter는 순환하지 않고 field = value
로 설정할 수도 있고 간단한 KVO로 처리할 수도 있습니다.
레이아웃 xml과 협업
<Button android:id = "+@id/button" ~ />
적어 놓으면button.text = ""
이렇게 하면 id 이름의 실례를 정의하지 않고 사용할 수 있다
this@,return@
class A {
val message = "hello"
class B {
val message = "world"
fun action() {
this@A.message
this@B.message
}
}
}
this@ 에서 this의 뜻을 명확하게 표시할 수 있다button.setOnClickListener {
ary.map {
//一気にreturnすることも出来る
return@setOnClickListener
//もちろん普通にreturnも出来る
return@map false
}
}
값을 되돌려야 하는 함수 안에서 어디서든 단숨에 되돌릴 수 있다.
when
val word = when (value) {
0 -> "zero"
1 -> "one"
}
되돌아오는 값을 가진 스위치 같은 녀석
return과closure 모두 사용할 수 있어 사용하기 쉽다
EventBus 등에서 State 관리 시 뷰 모양새 등에 사용when (value) {
o -> "zero"
1,2 -> "one or two"
else -> {
throw new Exception()
}
}
조건 차이도 좋아요.
이거 어떻게 써요?
null의 무보존막 (iflet 맛)
hoge?.let {
it.action()
}
hoge?.let {
it.action()
} ?: run {
//nullの場合
}
이렇게 써도 돼요.
null의 랩(guard 맛)
var hoge = hoge ?: return
리셋 매개변수
fun action(completion: (() -> Unit)? = null)
() -> Unit) 유형으로 선언됩니다.
예를 들어(Int->String) Int를 수신하고 String 콜백으로 돌아갑니다.completion?.invoke()
에 설명된 해당 매개변수의 값입니다.
초기화 규약
private lateinit var message:String
onCreate() {
message = "hello"
}
lateinit를 사용하면 notnull의 전역 변수를 초기화하지 않고 설명할 수 있습니다.
onCreate나 구조 함수를 사용하여 초기화할 수 있다면,null-wrap의 횟수를 줄일 수 있습니다
신경 쓰이는 거.
runtime 크기
이점
컴파일 시간
별로 신경 쓰지 않는 것 같아.이르지도 늦지도 않다
총결산
이점
아무튼 잘 썼어요.
IDE 때문에 실제 학습 비용은 매우 낮음
Java와의 호환성이 높아 프로젝트의 작은 부분에서 쉽게 넣을 수 있음
결점
null를 잘 처리하지 않으면null이 판별하는if문장으로 가득 차 있다
실제로 쓰면 Android Studio가 고정되어 있어요.
비트 연산 등 연산자를 사용할 때 자바가 좋다(toByteArray 또는 모두 접미사)
while 판별식으로 대입할 수 없습니다.while(val hoge = 0) {
//↑できない
}
Slack
Reference
이 문제에 관하여(제가 Kotlin을 한 달 동안 썼어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/noppefoxwolf/items/b2d93f946f158c7b5852
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Java에 비해 Swift와 비슷하기 때문에 iOS 엔지니어가 쉽게 착수할 수 있습니다.
그럼에도 불구하고 사실 Kotlin이 먼저 발표했다.
간단한 곳에서 몇 가지를 소개하다
변수 선언
java
JavaObject javaObject = new JavaObject("android");
kotlinval kotlinObject = KotlinObject("android")
유형 추리와 상수 성명, 선택 가능한 정의도 명확하다상수/변수
var fuga = "neko"
fuga = "inu" //再代入可
val hoge = "neko"
hoge = "inu" //できない
final 을 넣지 않아도 재대입 을 방지할 수 있다옵션 1
var fuga: String? = "neko"
fuga = null //再代入
var hoge: String = ""
hoge = null //できない
빈 것을 허락하든지 엄격하게 쓰든지옵션 2
hoge?.anything()
만약 hoge가 비어 있다면 아무 일도 일어나지 않을 것이다구조 함수 1
constructor() {
//初期化処理
}
초기화할 때 특별히 유명을 쓰지 않아도 된다.변수 선언과 함께 아주 좋은...
구조 함수 2
class AudioFormat(val type: String) {
}
주구조 함수는 클래스의 성명에 쓸 수도 있고 변수로 설명할 수도 있다....이렇게
Try
Kotlin은 어쨌든 분명하게 쓸 수 있다.
간단하게 시도할 수 있다.Java의 자동 변환도 있습니다.
코드를 바꾸고 싶거나 해보고 싶을 때 편해요.
실제 사용이 편리한 녀석
Java 함수 속성 바람 호출
class JavaObject {
String getMessage() {
return "message";
}
void setMessage(String message) {
this.message = message
}
}
이런 방법.javaObject.message //get
javaObject.message = "hello" //set
호출
라이브러리에 Java를 섞어도 Kotlin의 유파를 관철할 수 있습니다.
extension
fun Message.say() {
playVoice()
}
기존 클래스 생성 방법val PreviewActivity.voiceId: Int
get() = 0
속성을 생성할 수도 있습니다 (Swift라면 할 수 없습니다).
언어급 단일 지원
object SingletonClass {
var isFirstLaunch = false
}
class를object로 쓰면 단일화SingletonClass.isFirstLaunch
유명속성
작은 인터페이스 생략
button.setOnClickListener(object :View.OnClickListener {
override fun onClick(v: View?) {
}
})
이렇게 덮어쓰는 인터페이스만 있으면 돼요.button.setOnClickListener {
}
이렇게 생략해도 돼요.
it에서 매개 변수 검색 가능
getter/setter
var messsage: String = ""
set (value) {}
get {}
getter/setter를 명확하게 추가할 수도 있습니다.
setter는 순환하지 않고 field = value
로 설정할 수도 있고 간단한 KVO로 처리할 수도 있습니다.
레이아웃 xml과 협업
<Button android:id = "+@id/button" ~ />
적어 놓으면button.text = ""
이렇게 하면 id 이름의 실례를 정의하지 않고 사용할 수 있다
this@,return@
class A {
val message = "hello"
class B {
val message = "world"
fun action() {
this@A.message
this@B.message
}
}
}
this@ 에서 this의 뜻을 명확하게 표시할 수 있다button.setOnClickListener {
ary.map {
//一気にreturnすることも出来る
return@setOnClickListener
//もちろん普通にreturnも出来る
return@map false
}
}
값을 되돌려야 하는 함수 안에서 어디서든 단숨에 되돌릴 수 있다.
when
val word = when (value) {
0 -> "zero"
1 -> "one"
}
되돌아오는 값을 가진 스위치 같은 녀석
return과closure 모두 사용할 수 있어 사용하기 쉽다
EventBus 등에서 State 관리 시 뷰 모양새 등에 사용when (value) {
o -> "zero"
1,2 -> "one or two"
else -> {
throw new Exception()
}
}
조건 차이도 좋아요.
이거 어떻게 써요?
null의 무보존막 (iflet 맛)
hoge?.let {
it.action()
}
hoge?.let {
it.action()
} ?: run {
//nullの場合
}
이렇게 써도 돼요.
null의 랩(guard 맛)
var hoge = hoge ?: return
리셋 매개변수
fun action(completion: (() -> Unit)? = null)
() -> Unit) 유형으로 선언됩니다.
예를 들어(Int->String) Int를 수신하고 String 콜백으로 돌아갑니다.completion?.invoke()
에 설명된 해당 매개변수의 값입니다.
초기화 규약
private lateinit var message:String
onCreate() {
message = "hello"
}
lateinit를 사용하면 notnull의 전역 변수를 초기화하지 않고 설명할 수 있습니다.
onCreate나 구조 함수를 사용하여 초기화할 수 있다면,null-wrap의 횟수를 줄일 수 있습니다
신경 쓰이는 거.
runtime 크기
이점
컴파일 시간
별로 신경 쓰지 않는 것 같아.이르지도 늦지도 않다
총결산
이점
아무튼 잘 썼어요.
IDE 때문에 실제 학습 비용은 매우 낮음
Java와의 호환성이 높아 프로젝트의 작은 부분에서 쉽게 넣을 수 있음
결점
null를 잘 처리하지 않으면null이 판별하는if문장으로 가득 차 있다
실제로 쓰면 Android Studio가 고정되어 있어요.
비트 연산 등 연산자를 사용할 때 자바가 좋다(toByteArray 또는 모두 접미사)
while 판별식으로 대입할 수 없습니다.while(val hoge = 0) {
//↑できない
}
Slack
Reference
이 문제에 관하여(제가 Kotlin을 한 달 동안 썼어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/noppefoxwolf/items/b2d93f946f158c7b5852
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Java 함수 속성 바람 호출
class JavaObject {
String getMessage() {
return "message";
}
void setMessage(String message) {
this.message = message
}
}
이런 방법.javaObject.message //get
javaObject.message = "hello" //set
호출라이브러리에 Java를 섞어도 Kotlin의 유파를 관철할 수 있습니다.
extension
fun Message.say() {
playVoice()
}
기존 클래스 생성 방법val PreviewActivity.voiceId: Int
get() = 0
속성을 생성할 수도 있습니다 (Swift라면 할 수 없습니다).언어급 단일 지원
object SingletonClass {
var isFirstLaunch = false
}
class를object로 쓰면 단일화SingletonClass.isFirstLaunch
유명속성작은 인터페이스 생략
button.setOnClickListener(object :View.OnClickListener {
override fun onClick(v: View?) {
}
})
이렇게 덮어쓰는 인터페이스만 있으면 돼요.button.setOnClickListener {
}
이렇게 생략해도 돼요.it에서 매개 변수 검색 가능
getter/setter
var messsage: String = ""
set (value) {}
get {}
getter/setter를 명확하게 추가할 수도 있습니다.setter는 순환하지 않고
field = value
로 설정할 수도 있고 간단한 KVO로 처리할 수도 있습니다.레이아웃 xml과 협업
<Button android:id = "+@id/button" ~ />
적어 놓으면button.text = ""
이렇게 하면 id 이름의 실례를 정의하지 않고 사용할 수 있다this@,return@
class A {
val message = "hello"
class B {
val message = "world"
fun action() {
this@A.message
this@B.message
}
}
}
this@ 에서 this의 뜻을 명확하게 표시할 수 있다button.setOnClickListener {
ary.map {
//一気にreturnすることも出来る
return@setOnClickListener
//もちろん普通にreturnも出来る
return@map false
}
}
값을 되돌려야 하는 함수 안에서 어디서든 단숨에 되돌릴 수 있다.when
val word = when (value) {
0 -> "zero"
1 -> "one"
}
되돌아오는 값을 가진 스위치 같은 녀석return과closure 모두 사용할 수 있어 사용하기 쉽다
EventBus 등에서 State 관리 시 뷰 모양새 등에 사용
when (value) {
o -> "zero"
1,2 -> "one or two"
else -> {
throw new Exception()
}
}
조건 차이도 좋아요.이거 어떻게 써요?
null의 무보존막 (iflet 맛)
hoge?.let {
it.action()
}
hoge?.let {
it.action()
} ?: run {
//nullの場合
}
이렇게 써도 돼요.
null의 랩(guard 맛)
var hoge = hoge ?: return
리셋 매개변수
fun action(completion: (() -> Unit)? = null)
() -> Unit) 유형으로 선언됩니다.
예를 들어(Int->String) Int를 수신하고 String 콜백으로 돌아갑니다.completion?.invoke()
에 설명된 해당 매개변수의 값입니다.
초기화 규약
private lateinit var message:String
onCreate() {
message = "hello"
}
lateinit를 사용하면 notnull의 전역 변수를 초기화하지 않고 설명할 수 있습니다.
onCreate나 구조 함수를 사용하여 초기화할 수 있다면,null-wrap의 횟수를 줄일 수 있습니다
신경 쓰이는 거.
runtime 크기
이점
컴파일 시간
별로 신경 쓰지 않는 것 같아.이르지도 늦지도 않다
총결산
이점
아무튼 잘 썼어요.
IDE 때문에 실제 학습 비용은 매우 낮음
Java와의 호환성이 높아 프로젝트의 작은 부분에서 쉽게 넣을 수 있음
결점
null를 잘 처리하지 않으면null이 판별하는if문장으로 가득 차 있다
실제로 쓰면 Android Studio가 고정되어 있어요.
비트 연산 등 연산자를 사용할 때 자바가 좋다(toByteArray 또는 모두 접미사)
while 판별식으로 대입할 수 없습니다.while(val hoge = 0) {
//↑できない
}
Slack
Reference
이 문제에 관하여(제가 Kotlin을 한 달 동안 썼어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/noppefoxwolf/items/b2d93f946f158c7b5852
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
hoge?.let {
it.action()
}
hoge?.let {
it.action()
} ?: run {
//nullの場合
}
var hoge = hoge ?: return
fun action(completion: (() -> Unit)? = null)
completion?.invoke()
private lateinit var message:String
onCreate() {
message = "hello"
}
runtime 크기
이점
컴파일 시간
별로 신경 쓰지 않는 것 같아.이르지도 늦지도 않다
총결산
이점
아무튼 잘 썼어요.
IDE 때문에 실제 학습 비용은 매우 낮음
Java와의 호환성이 높아 프로젝트의 작은 부분에서 쉽게 넣을 수 있음
결점
null를 잘 처리하지 않으면null이 판별하는if문장으로 가득 차 있다
실제로 쓰면 Android Studio가 고정되어 있어요.
비트 연산 등 연산자를 사용할 때 자바가 좋다(toByteArray 또는 모두 접미사)
while 판별식으로 대입할 수 없습니다.while(val hoge = 0) {
//↑できない
}
Slack
Reference
이 문제에 관하여(제가 Kotlin을 한 달 동안 썼어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/noppefoxwolf/items/b2d93f946f158c7b5852
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
while(val hoge = 0) {
//↑できない
}
Reference
이 문제에 관하여(제가 Kotlin을 한 달 동안 썼어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/noppefoxwolf/items/b2d93f946f158c7b5852텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)