[コトリン・ストディ02]0530


❗データ型と変数


●資料型


Int:整数例)1
string:文字列、配列の一例)「hello 123」
Float:実数、小数点以下.doubleなど様々なオプションの例)1.2
→小文字だと間違える・・・

●変数


val(value):変更せず、値を宣言して初期化すると、値は変更できません.
var(variable):可変、宣言、初期化で値を変更できます.

宣言変数のメソッド


val/var(宣言キー)ユーザ名(変数名):String(データ型)=「値」の形式
val username: String = "ssook"
 fun main(){
    val username: String = "ssook"
    //username = "sook" → val은 불변형 변수 키워드이므로 username은 불변형
    println("username: $username");
 }
 fun main(){
    var username: String = "ssook"
   	username = "sook" 
    println("username: $username");
 }
 fun main(){
    var username = "ssook"
    var count1: Int = 3 
    var count2 =3 
    println("username = ${username}, count1=$count1, count2= $count2")
 }
上の図から分かるように、コンパイラがデータ型を知っていれば、削除データ型も値に基づいて推定して宣言することができるので省略できます.

宣言変数の例

var username
データ型が指定されていないため、コンパイラはデータ型推定ができない→使用できない
val init: Int
使用前または作成者の観点からinit変数を初期化します.したがって、この場合に使用可能
変数を使用するには、データ型を入力するか、値の初期化を行う必要があります.

リソースタイプについて


●ベーシックタイプ
  • 未加工の純材料で、プログラミング言語に内蔵されている
  • コトリンでは使用せずJavaでのみ使用
    例)int、long、float、double
  • ●リファレンスタイプ
  • データは動的空間に存在し、この資料型
  • を参照する.
  • ベース(Int-Inなど)によって各マッチングがオブジェクトのタイプとして作成されます.
    例)Int、Long、Float、Double
  • 基本的なパフォーマンスが向上します.一度に1回参照すると、パフォーマンスが遅くなります.
    ただし、基本型を使用するとコードが複雑になるので、コーナー参照型を使用します.
    ●負数を用いた符号付き整数データ型
    Long, Int, Short, Byte
    ●符号なし整数型(1.3版で実験的に使用)
    ULong, UInt, Ushort, Ubyte
    :正数のみです.負の値では表示できません
    ●IEEE浮動小数点制限
    package chap02.section2
    
    fun main(){
    
    	var num: Double = 0.1
        
        for(x in 0..999){
        	num += 0.1 
        }
        println(num) //100.09999999999859
    }

    0.1に1000回プラスすると100になるはずです
    →指数部と可数部に制限があるため、このような現象が発生する.この点に注意!
    →もちろん、他の資料型にもこのような制限があります.
    ●その他資料型
    Float/Double(実数)、Boolean(論理)、Char(文字)

    文字列


    :Stringとして宣言され、String Pool空間に配置されます.
    fun main(){
    	var str1: String = "hello"
        var str2 = "world"
        var str3 = "hello"
        
        println(str1===str2) // === : 참조 값이 같은 지 판단할 때 사용하는 연산자
        println(str1===str3)
    }

    →varと宣言されたstr 1の参照アドレスは可変であり、アドレス自体は後で他の値を指す他のアドレスに変更することができる.ただし、宣言後にメモリスペースに作成されたデータhelloは変更されません.
    →str 1とstr 3はhelloを表すのでtrueです.

    データ型簡略化の例


    ●資料型省略


    :コンパイラが自分で推定した場合
    val num05 =127

    ●接頭辞の使用


    :接尾辞と接頭辞を使用してコンパイラを指定して推論できます.
    val exp01 = 123L // 접미사 L을 사용해 Long형으로 추론
    val exp02 = 0x0F // 접두사 0x를 사용해 16진 표기가 사용된 Int형으로 추론

    ●小額の使用


    :宣言の前にデータ型を明示的に直接書き込み、明示的に指定されていない場合はInt値と推定します.
    val exp07 : Byte = 127

    ●符号無し整数データ型


    :宣言時には、符号なし整数形式を明確に表示し、接尾辞を付ける必要があります.
    val uint : UInt = 153u

    ●大数を読みやすい方法


    :実際のコードに影響を与えず、単純で読みやすいものにのみ使用
    val num = 1_000_000

    𕼧式の文字列


    ●式と$記号で文字列を出力する

    var a = 1
    val s1 = "a is $a" //String 자료형의 s1을 선언하고 초기화, 변수 a가 사용됨.