기본 문법
정의 함수
- 자바
public int method(int a,int b){
// todo
return a+b;
}
复制代码
- 코 틀린
fun method(a:Int,b:Int):Int{
return a+b
}
复制代码
- 코 틀린 모두에서 객체의 기본 데이터 유형은 (INT, 긴, 부울, 더블 , 짧은, 플로트, 바이트) 자바는 (INT, 긴, 부울 코 틀린 클래스의 해당 패키지에서 사용할 수, 두 번, 짧은, 플로트, 바이트) . 주 : 코 틀린 함수 값을 리턴하지 않는 경우에 단위 지능 대체로서 2, 또는 생략 : 1 종류의 수는 코 틀린 (유형 긴 INT 자바 예)에 대한 암시 설치할 수없는
변수를 정의
- 자바
private final int a;
public int b=1;
String c;
复制代码
- 코 틀린
private val a:Int?=1
public val b=1
lateinit var c:String
private val d:Int by lazy { 1 }
复制代码
- 코 틀린에서는 VAR와 val 변수와 상수로 선언
- 참고 : 1, 정상적인 상황에서, 당신은 변수가 2 초기화해야 선언 할 때, 당신은 변수는 유형 선언 '이후에 널 (null) 할 필요가 추가하려면? 우리는 그들이 선언 할 때, 당신은 var에 전에 키워드를 추가 할 수 있습니다 초기화되지 않은 경우 '3, lateinit을 (발은 lateinit를 지원하지 않습니다) 4 발을 사용할 수 있습니다 게으른에 의해 초기화 시간 지연에 키 (첫 번째 전화에서 초기화)
그리고 널 널 (null) 검출기를 사용
- 자바
String a=null;
if(a!=null){
int size=a.length();
}
复制代码
- 코 틀린
var a:Strng?=null
var size=a?.length
var size2=a!!.length
复制代码
- 매개 변수를 사용하는 경우의 필요에 코 틀린 빈 될 수있다? '빈 경우 현재의 매개 변수가 비어 있는지 여부를 확인합니다'? 논리 후 '실행되지 않습니다. 또한 공기 여부를 확인하려면 '!'사용할 수 있지만, 어떤 매개 변수는 직접 빈 널 포인터 예외가 발생합니다.
사용 유형 검출기 및 자동 변환
- 자바
public String get(Object obj){
if(obj instanceof String){
String s=(String)obj;
return s;
}
return null;
}
复制代码
- 코 틀린
fun get(obj:Any):String?{
if(obj is String){
return obj
}
return null
}
复制代码
- 코 틀린 의해 인 전면 백 타입의 인스턴스의 형태 여부를 결정하기 위해, 로컬 변수 또는 비 가변 속성 변환을 표시하지 않고, 특정 유형은,이 종류의 검출 후의 브랜치로서 직접 사용할 수있는 것으로 판정 된 경우, 예를 들어 위의 OBJ 코드입니다.
- 참고 : 개체의 모든 자바 동등한 코 틀린는 모든 클래스의 부모입니다.
루프를 사용하여
- 자바
public void test(List<Stirng> list){
int size=list.size;
for(int i=0;i<size;i++){
System.out.println("list 第"+i+"个数据:"+ list.get(i));
}
}
复制代码
- 코 틀린
fun test(list:ArrayList<String>){
for(item in list){
println("list item:$item")
}
for(item in list.indices){
println("list 第$item 个数据:${list[item]}")
}
for((index,item) in list.withIndex()){
println("list 第$index 个数据为:$item")
}
}
复制代码
- 코 틀린까지 의 데이터를 통해 키워드, 상기 코드 밖으로 직접 데이터 목록 루프 제, 루프 인덱스리스트하는 제 2 추출 할 수있는 인덱스 데이터에 의해 취출되고, 제 3 고리가 동시에 인덱싱하고 데이터를 제거 할 수있다 통과.
표현식을 사용하는 경우
- 자바
public void test(int a){
switch(a){
case 1:
// todo
break;
case 2:
// todo
break;
default:
// todo
break;
}
}
复制代码
- 코 틀린
fun test(a:Int){
when(a){
0,1->{
//todo
}
2->{
//todo
}
in 3..10->{
//todo
}
else{
//todo
}
}
}
复制代码
- 때와 유사한 스위치에서 자바 코 틀린 표현.
- 복수의 조건이 동일한 논리를 수행 할 때, 그것은 쉼표로 구분 될 수있다;
- 조건의 범위를 사용할 수 있습니다 에 키워드 에 '전자와! '부정을 나타냅니다
(범위) 범위
- 코 틀린
fun test(a:Int){
//检测一个数是否在某个范围
if(a in 1..10){
println(x)
}
//检测某个数是否在区间之外
var list=listOf(2,3,4,5)
if(-1 !in 0..list.lastIndex){
println("-1 不在 list范围内!")
}
//区间迭代
for(x in 1..10){
println(x)
}
for(x in 1..10 step 2){
prinlnt(x)
}
for(x in 9 downTo 0 step 3){
println(x)
}
}
复制代码
- 사용될 수있다 코 틀린 부분 x..y는 Y하여 Y 및 X 사이 수가 <x 경우, Y>은 x 및 y가 x를 포함한다는 점에서 발현 downto ;
- 단계 X는 플러스 또는 반복 횟수에 따라 X 마이너스를 나타내고;
배열의 설정
- 성명서
//声明空数组
var list= arrayOfNulls<Any>(2)
//声明有初始值的数组
var list1= arrayOf(1,2,3,4)
//声明List
var list=ArrayList<String>()
//声明List并且初始化
var list3= listOf(1,2,3)
复制代码
HTTPS : //juejin.im/post/5d06eb146fb9a07ed36ea985 재현