中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

做網(wǎng)站用到的單詞關(guān)鍵詞seo優(yōu)化公司

做網(wǎng)站用到的單詞,關(guān)鍵詞seo優(yōu)化公司,怎么做網(wǎng)站的站點地圖,網(wǎng)站和網(wǎng)頁的設(shè)計方法Kotlin簡介 2011年7月,JetBrains推出Kotlin項目,這是一個面向JVM的新語言 2012年2月,JetBrains以Apache 2許可證開源此項目。 2016年2月15日,Kotlin v1.0發(fā)布,這被認(rèn)為是第一個官方穩(wěn)定版本。 在Google I/O 2017中&am…

Kotlin簡介

2011年7月,JetBrains推出Kotlin項目,這是一個面向JVM的新語言
2012年2月,JetBrains以Apache 2許可證開源此項目。
2016年2月15日,Kotlin v1.0發(fā)布,這被認(rèn)為是第一個官方穩(wěn)定版本。
在Google I/O 2017中,Google宣布在Android上為Kotlin提供最佳支持,取代java成為官方開發(fā)語言。

函數(shù)和變量

kotlin中的函數(shù)和變量可以直接聲明在文件中
使用fun關(guān)鍵字聲明函數(shù)
使用var關(guān)鍵字聲明變量,可讀可寫變量
使用val關(guān)鍵字聲明只讀變量,不可修改,相當(dāng)于java中的final
創(chuàng)建對象,只需調(diào)用構(gòu)造器即可,不需要java中的new關(guān)鍵字

fun main(){var age:Int =18
}fun doubleNumber(x:Int):Int{return x*2
}

聲明一個數(shù)組,使用arrayOf關(guān)鍵字:

private val studyList = arrayOf("語文","數(shù)學(xué)","英語")

靜態(tài)函數(shù)

比如工具類中常用的dp2px()

  1. 直接寫在Util.kt文件中
private val displayMetrics = Resources.getSystem().displayMetrics
fun dp2px(dp:Float):Float{return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,dp,displayMetrics)
}

那么在kotlin中調(diào)用的時候直接dp2px(15f)即可。在java中調(diào)用使用Utilkt.dp2px(15f),需要在文件名后邊加上kt后綴
2. 使用object關(guān)鍵字聲明

object Util{private val displayMetrics = Resources.getSystem().displayMetricsfun dp2px(dp:Float):Float{return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,dp,displayMetrics)}
}

在kotlin中調(diào)用Util.dp2px(15f),在java中調(diào)用Util.INSTANCE.dp2px(15f)
使用object關(guān)鍵字聲明,相當(dāng)于創(chuàng)建了一個類的單例對象

  1. 使用companion關(guān)鍵字 伴生對象
    比如application:
class BaseApplication : Application(){companion object{private lateinit var currentApplication: Contextfun currentApplication():Context{retun currentApplication}}override fun onCreate(){super.onCreate()currentApplication = this}
}

在kotlin中調(diào)用BaseApplication.currentApplication(),然后在java中調(diào)用BaseApplication.Companion.currentApplication()

依然使用class關(guān)鍵字聲明一個類:

class User{var name:String?=null//set,get方法要緊跟成員變量,且里邊要使用field關(guān)鍵字//set,get方法默認(rèn)可以不寫set(value){field = value}get(){field}constructor(){}constructor(name: String?){this.name = name}
}

繼承和實現(xiàn)接口只需要一個冒號:,不同的是繼承的類需要加上一個括號()

class MainActivity:AppcompatActivity(),View.OnClickListener{...
}

但是需要注意的是,如果在類中顯式聲明了構(gòu)造器,就不能加上這個括號()
在調(diào)用父類的構(gòu)造器或者本類中其他構(gòu)造器都要使用:,比如

class MyView : View {constructor(context:Context):this(context,null){}constructor(context:Context, attr:AttributeSet?):super(context,attr){}
}

另外,對一個類成員的set,get方法的訪問,可以直接使用.成員變量名的方式:

user.name = "xxxxxx" //進(jìn)行賦值,相當(dāng)于調(diào)用了setName()方法

如果是在java中去調(diào)用,不能使用user.name,只能使用其set,get方法。但是如果使用某一個成員變量,需要在kotlin中聲明這個變量的時候,使用@JvmField注解

@JvmField
var name:String?=null

匿名內(nèi)部類

創(chuàng)建一個一個匿名內(nèi)部類,需要object關(guān)鍵字
比如:

call.enqueue(object:Callback){override fun onResponse(call:Call, response:Response){}override fun onFailure(call:Call, e:IOException)
}

另外在內(nèi)部類中使用外部類的成員變量,在java中為Class.this.xx,在kotlin中要使用this@Class.xx

靜態(tài)內(nèi)部類

  1. 靜態(tài)內(nèi)部類可以直接在一個類中使用class聲明一個內(nèi)部類,這個類可以使用伴生對象
  2. 如果要使用普通的嵌套內(nèi)部類,則需要inner class去修飾
    另外internal關(guān)鍵字可以去修飾類和方法,表示當(dāng)前module可見,別的module不可見

接口和抽象類,枚舉類

接口(interface xxx)和抽象類(abstract class xxx)的聲明,與java中相同
但是枚舉類不一樣:

class SdutyList{enum class Type{MATH{...}}
}

kotlin中的類默認(rèn)都是被final關(guān)鍵字修飾的,不能被繼承,方法不能被重寫,如果想要一個類可以被繼承,需要使用abstract關(guān)鍵字修飾,方法需要使用open修飾,才可以重寫。

判斷語句

if 和 when:

if(code in 100..199){}  //表示code是否在100到199,雙閉區(qū)間

另外使用when關(guān)鍵字,相當(dāng)于java中的switch

when (code){//這里可以支持表達(dá)式in 100..199->{}in 200..299->{}else->{}
}

遍歷和循環(huán)

遍歷

除了常規(guī)的for遍歷一個數(shù)組或者集合

//比如有一個`users`的集合
var passUsers = ArrayList<User>()
for(user in users){if(user.age >= 18){passUsers.add(user)}
}
可以使用kotlin提供的操作符去簡化上述代碼:
//使用forEach操作符
users.forEach({user:User->if(user.age >= 18){passUsers.add(user)}
})
//如果forEach()中接收的參數(shù)只是一個lambda表達(dá)式,可以將{}提到括號外邊,且括號可以省略:
users.forEach{user:User->if(user.age>=18){passUsers.add(user)}
}
//另外,也可以使用類型推斷,不用聲明user的類型
users.forEach{user->if(user.age>=18){passUsers.add(user)}
}
//最后如果一個lambda表達(dá)式,只有一個參數(shù),那么這個參數(shù)可以省略不寫,而會有一個默認(rèn)的隱式參數(shù)it:User
users.forEach{if(it.age>=18){passUsers.add(it)}
}

還有,這個例子中相當(dāng)于過濾一些user,只要符合條件的user,那么可以使用filter操作符來簡化:

//這里直接過濾出年齡大于等于18的用戶
passUsers.add(users.filter{ it.age >= 18 })

循環(huán)

  1. 使用repeat關(guān)鍵字
//注意這里是一個隱式參數(shù)`it:Int`
repeat(100){println(it)
}
  1. for-i循環(huán)
for(i in 0..99){println(i)
}

集合

  1. 使用庫函數(shù)listOf<>()或者mapOf<>()
  2. 使用對象
var studyList:List<Lesson> = ArrayList();
var map:Map<Int, String> = HashMap()

但是需要注意的是上面所創(chuàng)建的集合元素都是不可修改的,無法進(jìn)行增刪

所以如果需要元素可變,一般使用:

  • arrayListOf<>(),mutableListOf<>(),mutableMapOf<>(),hashMapOf<>()
  • var studyList:ArrayList<Lesson> = new ArrayList()

kotlin中的類系統(tǒng)

JavaKotlin
ObjectAny
voidUnit

kotlin中基本數(shù)據(jù)類型

Kotlin基本數(shù)據(jù)類型位寬度
Char(字符型)
Boolean(布爾類型)
Byte8(字節(jié)型)
Short16(短整型)
Int32(整型)
Long64(長整型)
Float32(浮點型)
Double64(雙精度浮點型)

變量的可空控制

kotlin中將變量分為可空和不可空兩種類型。

//這里的user是一個不可空類型,如果賦值為null,則會報錯
var user:User 
//這里的user是一個可空類型,需要加一個問號?
var user:User?=null;

那么如果想要調(diào)用一個可空類型的變量,有兩種方式

user!!.getName()   //表示強(qiáng)制調(diào)用,不管是否為null
user?.getName()   //表示安全調(diào)用,如果不為null,才調(diào)用

雖然這里可以避免空指針,但是user為null肯定是有問題的,希望在編寫代碼的時候早發(fā)現(xiàn)這些問題。
一個錯誤的示例:

fun a(name:String){...
}
a(user?.getName()!!)
http://www.risenshineclean.com/news/49355.html

相關(guān)文章:

  • 浙江省建設(shè)廳網(wǎng)站地址廣州網(wǎng)站優(yōu)化服務(wù)
  • 醫(yī)院網(wǎng)站建設(shè)要求seo自學(xué)網(wǎng)免費
  • 怎么能讓網(wǎng)站排名靠前百度站長平臺快速收錄
  • 泰州網(wǎng)站建設(shè)服務(wù)熱線寧德市委書記
  • 傳奇網(wǎng)站傳奇寧波優(yōu)化seo是什么
  • 紹興建站模板系統(tǒng)網(wǎng)站關(guān)鍵詞如何快速上首頁
  • 自己做圖片網(wǎng)站競價排名服務(wù)
  • 網(wǎng)站上傳不了照片市場調(diào)研方法有哪幾種
  • 網(wǎng)站建設(shè)與制作考試題電商運營培訓(xùn)
  • 貿(mào)易公司做網(wǎng)站有用嗎搭建一個網(wǎng)站需要多少錢
  • 網(wǎng)站圖片代碼怎么做免費網(wǎng)站建站
  • 網(wǎng)站開發(fā)畢設(shè)開題報告怎么寫國內(nèi)手機(jī)搜索引擎十大排行
  • wordpress滾軸式主題網(wǎng)站如何優(yōu)化一個關(guān)鍵詞
  • 動態(tài)網(wǎng)站建設(shè)的心得體會個人網(wǎng)站設(shè)計畢業(yè)論文
  • 當(dāng)今做那些網(wǎng)站致富seo交流論壇
  • php企業(yè)網(wǎng)站源碼推薦被逆冬seo課程欺騙了
  • 網(wǎng)站流量查詢平臺nba賽程排名
  • 網(wǎng)站制作用到什么技術(shù)seo怎么發(fā)文章 seo發(fā)布工具
  • 濟(jì)南網(wǎng)站開發(fā) blog網(wǎng)站源碼下載
  • 青島seo做的好的網(wǎng)站程序員培訓(xùn)班要多少錢
  • 幼兒園主題網(wǎng)絡(luò)圖設(shè)計感想seo優(yōu)化系統(tǒng)
  • 做網(wǎng)站有年費嗎線上如何推廣自己的產(chǎn)品
  • 裝修公司做網(wǎng)站熱門關(guān)鍵詞網(wǎng)絡(luò)廣告的形式有哪些?
  • asp net做購物網(wǎng)站合肥疫情最新消息
  • 廣州智能建站模板百度推廣客戶端手機(jī)版
  • 浙江網(wǎng)站備案加急域名注冊商
  • h5網(wǎng)站怎么做api對接關(guān)鍵詞seo深圳
  • 有沒有美國做天然酵母的網(wǎng)站深圳純手工seo
  • 收費視頻網(wǎng)站怎么做b2b免費發(fā)布平臺
  • app網(wǎng)站建站系統(tǒng)下載關(guān)鍵詞批量調(diào)詞 軟件