Kotlin 語法

1,Val (來自 value)-- 不可變引用。使用val 生命變量不能在初始化之后賦值

? ? ? Var(來自 variable)--可變引用

Val message :String?

if(canPerformOperation()){

message="success"

}else{

message="Failed"

}

盡管Val 引用自身是不可變的,但是它指向的對象可能是可變的。例如

val language = arrayListOf("java")

language.add("Kotlin")

盡管var 關鍵字允許變量改變自己的值,但它的類型卻是改變不了的。例如下面這段代碼是不會編譯通過的

var answer =42

answer ="no answer"? ? 錯誤:類型不匹配

2.更簡單的字符串格式化:字符串模板

fun main( args:Array<String>){

val name = if (args.size>0) args[0] else “Kotlin”

println("Hello,$name!")

}

Kotlin 讓字符串值中引用局部變量,只需要在變量名稱前面加上$ 。 和java中的(“Hello,”+name+"!"),效率一樣,但是更緊促 。

如果在字符串中使用$字符,你可以對其進行轉義:println(“\ $x”),會打印為$x,而不是把x作為變量的引用

還可以引用更復雜的表達式,而不是僅限于簡單的變量名稱,只需要把表達式用花括號括起來:

fun main (args: Array<String>){

? ?if(args.size>0){

? ? println("Hello, ${args[0]}")

? ? ? }

}

使用${ }的語法插入args數(shù)據(jù)中第一個元素

還可以使用雙引號中直接嵌套雙引號,只要它們處在某個表達式范圍內(即花括號內)

fun main (args: Array<String>){

? ? println("Hello, ${if(args.size>0) args[0] else "some one"}")

}

3. 類和屬性

/**java */

public class Person{

private final String name;

? ? public Person(String name){

this.name =name;

? ? }

public String getName(){

return name;

? ? }

}

轉換為kotlin 的對象

class Person(val name:String)這種類通常叫做值對象。

注意從java 轉到kotlin時,public 修飾詞消失了,在kotlin中public修飾詞是默認的可見性

class Person(){

val name:String,

? ? ? ? ? ? var isMarrid:Boolean =false;

}

當你聲明屬性的時候,你就聲明了對應的訪問器(只讀屬性只有一個getter,而可寫屬性有getter 和setter兩個屬性)

/**java*/

-->> Person person = new Person("Bob",true);

-->> System.out.printlin(person.getName())

Bob

/**kotlin*/

-->>val person = Person("Bob",true)

-->> println(person.name)

Bob?

kotlin 中調用構造方法不需要關鍵字 new,但是可以直接訪問屬性

/*java 中的賦值**/

person.setMarried(false)

/*kotlin 中的賦值**/

person.isMarried =false;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容