真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在Kotlin中實現(xiàn)定義包和函數(shù)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何在Kotlin中實現(xiàn)定義包和函數(shù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到元寶山網(wǎng)站設(shè)計與元寶山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋元寶山地區(qū)。

包名的定義

在xxx.kt文件的頂部進行定義,使用package關(guān)鍵字,定義后,引用包內(nèi)函數(shù)或類,使用包前綴:

package cn.jasonmarzw //包定義
fun doSomething(){} // 定義的函數(shù)
class User(){} //定義的類
在其他文件中使用時: 
可以直接使用 cn.jasonmarzw.doSomething()和 cn.jasonmarzw.User進行調(diào)用??梢韵馢ava一樣,使用import引入所需要的包。 
也可以不定義包名,這樣就是默認包,default,不需要報名修飾符就可以訪問。 
這樣在項目文件組織結(jié)構(gòu)上,可以考慮按不一樣的結(jié)構(gòu)進行分類。

使用

使用import關(guān)鍵字導(dǎo)入所需要的類和函數(shù): 
import cn.jasonmarzw.User 導(dǎo)入User類 
import cn.jasonmarzw.doSomething 導(dǎo)入doSomething函數(shù)

可以使用as關(guān)鍵詞添加別名:

import cn.jasonmarzw.User as Person //添加User別名為Person 
import cn.jasonmarzw.doSomething as justDo //添加doSomething 函數(shù)別名為justDo 
var p = Person() //初始化User類對象 
justDo() //實際調(diào)用doSomething函數(shù)

二、流程控制(Control Flow)

If判斷

功能包括以下幾類:

  • 常規(guī)邏輯判斷: if(a>b) print(a) else print(b)
  • 返回值:

if允許有返回值,返回值在最后的表達式,因此可以用作替代三元運算符?:

var valid = a>b?true:false 
var valid = if(a>b) true else false //上述表達式的替代寫法
println(valid) //輸出結(jié)果為true

若if后是多個表達式,則返回值是最后一個表達式:

var valid=if(a>b){
  println(a)
  a
}else{
  println(b)
  b
}

valid的值是a或者b,若去掉a和b,觀察下valid的值:

var valid=if(a>b) println(a) else println(b)
println(valid)

輸出結(jié)果為:

kotlin.Unit

kotlin.Unit為無類型,類似java中的void,可見無返回。

使用for循環(huán)

fun forLoop(array: Array) {
  for (str in array) {
    println(str)
  }
}

or

fun forIndices(array: Array) {
  for (i in array.indices) {
    println(array[i])
  }
}

使用while循環(huán)

fun whileLoop(array: Array) {
  var i = 0
  while (i < array.size) {
    println(array[i++])
  }
}

主要包括三種類型:

  • Break
  • continue
  • return

1.break和continue

用法與java一致,用在循環(huán)中(for,while),還添加了一層特殊的用法,使用標(biāo)識符@定義label,一般用在內(nèi)層循環(huán)中跳到外層循環(huán):

loop@ for(i in 0..2){
  for(j in 0..3){
    if(j==2)
      continue@loop//跳到外層循環(huán),繼續(xù)往下執(zhí)行
  }
}

將continue換成break,j值為2的時候,跳到label定義處,跳出該層循環(huán):

loop@ for(i in 0..2){
  for(j in 0..3){
    if(j==2)
      break@loop//跳到外層循環(huán)label處,跳出改層循環(huán)
  }
}

2.return

在函數(shù)中使用return,當(dāng)函數(shù)沒有返回值時,可以使用return或者return@label退出函數(shù);當(dāng)函數(shù)有返回值時,不可以使用label返回。

fun foo(){
  var intArray = arrayOf(1,2,3)
  intArray.forEach{
    if(it==2)return //遍歷到第二個元素時退出函數(shù)
    println(it)
  }
  println("end")
}

當(dāng)使用label時,表示退出當(dāng)前循環(huán):

fun foo(){
  var intArray = arrayOf(1,2,3)
  intArray.forEach{
    if(it==2)return@forEach //遍歷到第二個元素時退出函數(shù)
    println(it)
  }
  println("end")
}

When表達式

when類型switch表達式,擁有多個分支,但是區(qū)別于switch,其具有的

常規(guī)邏輯判斷:

when(x){ 1 -> print(“is one”) else -> print(“not one”)}

判斷x的表達式部分,可以是具體的值,可以是表達式,可以是取值范圍判斷。

表達式:

用作表達式時,有返回值 :

var a = 1
 var x = when (a) {
     3 -> {
     print(a)
     3 //返回值
   }
     else -> {
       print("unit")
       2 //返回值
     }
   }

查看When表達式定義:

"when" ("(" expression ")")? "{"whenEntry*"}"

when條件部分定義為:(“(” expression “)”)?,是一個表達式,可忽略

whenEntry部分定義:whenCondition{“,”} “->” expression SEMI “else” “->” expression SEMI,whenCondition部分允許使用逗號分隔,支持多個condition組合,如:is String,is Boolean -> println(“cool”),->符號表示后面是內(nèi)容部分,由表達式expression和SEMI組成,后面的else,當(dāng)when當(dāng)做表達式時,必須要有,否則返回值為Unit類型。

whenCondition定義::expression: (“in” | “!in”) expression : (“is” | “!is”) isRHS,可以直接是表達式,或者是in、!in修飾的表達式,或者 is、!is修飾的表達式。

使用集合

遍歷一個集合:

for (name in names) 
println(name)

使用in操作符檢查一個集合是否包含一個對象:

if (text in names) // 調(diào)用names.contains(text) 
print(“Yes”)

使用Lambda表達式過濾和映射集合:

names 
.filter { it.startsWith(“A”) } 
.sortedBy { it } 
.map { it.toUpperCase() } 
.forEach { print(it) }

創(chuàng)建DTO(POJO/POCO)

data class Customer(val name: String, val email: String)

提供帶有下列功能的Customer類:
-所有屬性的getter(和var的setter)
-equals()
-hashCode()
-toString()
-copy()
-component1(),component2()

try/catch表達式

fun test() {
   val result = try { 
    count() 
   } catch (e: ArithmeticException) {
   throw IllegalStateException(e)
  } 
  // 和result一起工作
}

上述就是小編為大家分享的如何在Kotlin中實現(xiàn)定義包和函數(shù)了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享標(biāo)題:如何在Kotlin中實現(xiàn)定義包和函數(shù)
網(wǎng)站地址:http://weahome.cn/article/pdscpj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部