Kotlin常用用法事例(一)

來源于《Kotlin實戰(zhàn)》中一些自己記錄的常用用法

類與屬性

字符串模板

fun main(args:Array<String>){
    println("Hello ${if(args.size > 0) args[0] else "zero~~ "}")
}
//如果沒有傳入?yún)?shù)的話  輸出 zero~~

Kotlin中的Bean

//Java
public class Person{
  private final String name;
//getter...
//setter...
}

//Kotlin 稱為值對象
class Person(val name:String)

kotlin中val為只讀屬性 (生成一個字段和一個getter) val為可寫屬性(生成一個字段瓷胧、一個getter 和一個setter)

自定義訪問器

class Rectangle(val height:Int,val width:Int){
    val isSquare:Boolean 
        get(){
            return height == width
        }    //自定義getter
}
//調(diào)用
val rect = Rectangle(40,40)
println(rect.isSquare)
//輸出:true

聲明枚舉類型

enum class Color{ RED,ORANGE,BLUE,GREEN}

//聲明帶屬性的枚舉類型
enum class Color(val r:Int,val g:Int,val b:Int){
 RED(255,0,0),ORANGE(255,165,0)
  fun rgb = (r*256+g) *256 +b
}
//輸出
println(Color.RED.rgb())

在一個when分支上合并多個選項

enum class Color {
    RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET
}

fun getWarmth(color: Color) = when(color) {
    Color.RED, Color.ORANGE, Color.YELLOW -> "warm"
    Color.GREEN -> "neutral"
    Color.BLUE, Color.INDIGO, Color.VIOLET -> "cold"
}

fun main(args: Array<String>) {
    println(getWarmth(Color.ORANGE))
}
//輸出:warm

在"when"中使用任意對象

setOf() 創(chuàng)建出一個Set

fun mix(c1: Color, c2: Color) =
        when (setOf(c1, c2)) {
            setOf(RED, YELLOW) -> ORANGE
            setOf(YELLOW, BLUE) -> GREEN
            setOf(BLUE, VIOLET) -> INDIGO
            else -> throw Exception("Dirty color")
        }

fun main(args: Array<String>) {
    println(mix(BLUE, YELLOW))
}

Kotlin中的is

使用is 判斷某個變量是否是某個類型
使用as進行特定類型的顯式轉換

Kotlin中的迭代

for(i in 100 downTo 1 step 2){
  println("log")
}
//打印5行l(wèi)og
for(i in 1..10){
  println("log")
}

fun main(args: Array<String>) {
    var list = arrayListOf("1","2","3")
    for((index,element) in list.withIndex()){
        println("$index:$element")
    }
}
//0:1
//1:2
//2:3

使用in檢查集合和區(qū)間

fun isLetter(c:Char) = c in 'a'..'z' || c in 'A'..'Z'
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖潭袱,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異锋恬,居然都是意外死亡屯换,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門与学,熙熙樓的掌柜王于貴愁眉苦臉地迎上來彤悔,“玉大人,你說我怎么就攤上這事索守≡我ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵卵佛,是天一觀的道長杨赤。 經(jīng)常有香客問我,道長截汪,這世上最難降的妖魔是什么疾牲? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮衙解,結果婚禮上阳柔,老公的妹妹穿的比我還像新娘。我一直安慰自己丢郊,他們只是感情好盔沫,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著枫匾,像睡著了一般架诞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上干茉,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天谴忧,我揣著相機與錄音,去河邊找鬼。 笑死沾谓,一個胖子當著我的面吹牛委造,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播均驶,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼昏兆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了妇穴?” 一聲冷哼從身側響起爬虱,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎腾它,沒想到半個月后跑筝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瞒滴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年曲梗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妓忍。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡虏两,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出世剖,到底是詐尸還是另有隱情碘举,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布搁廓,位于F島的核電站,受9級特大地震影響耕皮,放射性物質(zhì)發(fā)生泄漏境蜕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一凌停、第九天 我趴在偏房一處隱蔽的房頂上張望粱年。 院中可真熱鬧,春花似錦罚拟、人聲如沸台诗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拉队。三九已至,卻和暖如春阻逮,著一層夾襖步出監(jiān)牢的瞬間粱快,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留事哭,地道東北人漫雷。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像鳍咱,于是被迫代替她去往敵國和親降盹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容