一 變量聲明
? ? val a:String="asd";
? ? val a=“asd”;
? ? 1. 格式
????????<關(guān)鍵字>空格<變量名>:<類型>=<初始化值>;
? ? ? ? 1.1 var 變量
? ? ? ? 1.2 val 引用不可變變量(Java中用final實現(xiàn))捞蛋,引用的對象不可變,但是對象的值可變爵政,例如,數(shù)組中的某個值可變撕攒,但是對這個數(shù)組的引用不可變哼转;某個對象的某個類變量值可變长豁,但對該對象的引用不可變。
? ? ? ? 1.3 val及var 支持聲明時不賦值(在函數(shù)體中時轩触,類變量不可以)寞酿,在后面再對其賦值,但聲明時不可省略變量類型,且val只能賦值一次脱柱。
? ? ? ? 1.4 優(yōu)先使用val聲明變量(盡量使用val伐弹、不可變對象及純函數(shù)設(shè)計程序P14),避免意料之外的修改(這是一種防御性的編碼思維模式榨为,增加安全及可靠性惨好,除非使用反射等方式,其值永遠(yuǎn)不會被修改随闺;不可變變量更加容易推理日川,越是邏輯復(fù)雜的業(yè)務(wù)邏輯,優(yōu)勢越明顯)矩乐。
? ? 2. 支持類型推導(dǎo)(在不顯示聲明類型的情況下自動推導(dǎo)出變量所需要的類型)
? ? ? ? ? ? a. 變量支持類型推導(dǎo)
? ? ? ? ? ? b. 函數(shù)需要聲明返回值類型龄句,否則返回值類型按Unit計(java中沒有的新類型,不與其他類型兼容)散罕。