학습 코 틀린 문법 (A)

기본 문법

정의 함수

  • 자바
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 재현

추천

출처blog.csdn.net/weixin_33725807/article/details/93180023