摘要:操作符如果當不為時候就會返回,否則干脆拋出空指針異常。以上資料,有部分參考自入門之
今天說一下Kotlin的基本語法,主要包括以下部分:
1.變量
2.操作符
3.函數
先來了解一下Kotlin代碼是什么樣子吧,這是一個HelloWorld
package com.oppo.demo.test //包的聲明 import java.util.* // 導包,這里可以導入Java類,可以正常使用 /** * 程序入口 */ fun main(args: Array) { //輸出字符 代碼結尾不需要寫分號 println("Hello world") }
需要注意的是,在Kotlin中,不再向Java那樣,代碼結尾不需要寫“;”了
// 這是一個行注釋 /* 這是一個多行的 塊注釋。 */ /** * 函數、類注釋 */變量
在Kotlin中,變量分為只讀變量和可變變量,聲明變量的方法也和Java不同,和JS類似
//只讀變量 val name = "小明" //自動推斷出類型 val age:Int = 22 // 明確類型 val email:String //如果沒有初始值 則需要明確類型 email = "hezhao_java@163.com" //可變變量 var score = 90.5 score += 2
我們嘗試給name重新賦值,看看會出現什么結果:
可以看到編譯器報錯,所以:
var - 用于定義可變變量
val - 用于定義只讀變量
變量類型,和Java一模一樣
var b1:String //字符串 var b2:Char //字符 var b3:Int //整型 var b4:Double //雙浮點 var b5:Float //浮點數 var b6:Byte //字節 var b7:Long //長整型 var b8:Boolean //布爾使用可空值及 null 檢測
開發過Java的人都知道,程序報異常了,打開控制臺一看,你肯定能看到NullPinterException的存在。Kotlin的類型設計系統旨在消滅“空指針異常”,那么是怎么做到的呢?
正常情況下,變量都不允許直接賦值為null,比如以下這段代碼是錯誤的:
fun returnNull():String{ return null //error,不能賦null值 }
或者
var str:String str = null //error
那么,有時候我們確實需要返回null值,要怎么做呢?
當某個變量的值可以為 null 的時候,必須在聲明處的類型后添加 ? 來標識該引用可為空。
fun returnNull():String?{ return null } //變量也是一樣 var str:String? str = null
值得注意的是,當我們使用一個可空變量的時候,編譯器會報一個錯,它會認為這是不安全的,這種情況下我們需要自己去做類型檢查
if(str != null) println(str.length)
或者
var str:String? = returnNull() if(str == null){ return } //// 在空檢測后,str 會自動轉換為非空值 println(str.length)
以上這段代碼可以簡寫為:
//變量也是一樣 var str:String? = returnNull() ?: return //// 在空檢測后,str 會自動轉換為非空值 println(str.length)這里涉及到了操作符的問題
那么,這里說一下Kotlin一些新的操作符
var length =str?.length
如果當str不為null時候就會返回str.length,否則返回null。
val length2 = str?.length ?: -1
如果當str不為null時候就會返回str.length,否則返回-1。
val length3 = str!!.length
如果當str不為null時候就會返回str.length,否則干脆拋出空指針異常。
依我看,這個操作符還是少用吧。。。
同樣,也適用于類型轉換
//類型轉換 如不成功給個 null val s = "1" val s1: Int? = s as? Int函數
函數使用fun來定義,缺省返回值為Unit,類似于Java中的void
下面列出幾種常見的函數定義
fun printSum(a: Int, b: Int): Unit { println("sum of $a and $b is ${a + b}") } //可以省略Unit fun printSum(a: Int, b: Int) { println("sum of $a and $b is ${a + b}") }
fun sum(a: Int, b: Int): Int { return a + b }
fun sum(a: Int, b: Int) { return a + b }
fun sum(a: Int, b: Int) = a + b //這里,可以使用if作為表達式 fun calc(a: Int, b: Int) = if(a > b) a+b else a-b
fun returnNull():String?{ return null }
以上就是,今天學習的內容,后續再說選擇結構、表達式、循環結構 等。
以上資料,有部分參考自:kotlin入門之"null"
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70215.html
摘要:本文地址閱讀時間大概分鐘如今大多數現代語言都依然使用老舊的語法。我們看一下編程語言的年代等等。這些都是上個世紀的語言了。我覺得還有要給非常有用的特性,。之所以沒有提到,是因為大多數語言都已經有這個特性了吧,看來還是發展太慢啊。。。 dev-reading/fe 是一個閱讀、導讀、速讀的 repo,不要依賴于 dev-reading/fe 學習知識。本 repo 只是一個快速了解文章內容...
閱讀 3834·2021-09-06 15:00
閱讀 2171·2019-08-30 15:53
閱讀 3277·2019-08-23 16:44
閱讀 944·2019-08-23 15:19
閱讀 1391·2019-08-23 12:27
閱讀 4187·2019-08-23 11:30
閱讀 581·2019-08-23 10:33
閱讀 369·2019-08-22 16:05