Kotlin語法

?整理關鍵語法列表如下:

https://developer.android.com/kotlin/interop?hl=zh-cn官方指導鏈接
語法形式
說明
println("count ${count+num}")字符串里取值運算

val count = 2

var sum = 0?

類型自動推導

val?定義只讀變量,優先

var定義可變變量,可修改

val stradd = str1 + str2字符串相加
println("Say \"hello\" \n")轉義序列
變量名稱應采用駝峰式大小寫形式,并以小寫字母開頭編碼規范
fun birthdayGreeting(name: String): String {}函數定義
指定傳入形參的名字,可以不按順序傳參具名實參
fun birthdayGreeting(name: String = "Rover", age: Int): String?默認實參
val languageName: String? = nullnull安全
if (count == 42) {
? ? "I have the answer."?
}

if條件表達式

表達式返回值為條件句中最后一個表達式值

val answerString = when {
? ? count == 42 -> "I have the answer."
? ? count > 35 -> "The answer is close."
? ? else -> "The answer eludes me."
}

when條件表達式

返回類型要統一

每個分支要有返回

val fun1:(Int, Int)->Int={a,b->(a+b)}

fun test(a : Int , b : (num1 : Int , num2 : Int) -> Int) : Int{
?? ?return a + b.invoke(3,5) //8
}

匿名函數定義在{}里,a,b入參,->表示轉向,返回a+b。

后面是高階函數,函數中回調函數

Kotlin符號介紹(一) - 簡書kotlin特殊符號使用介紹

class Car()

class Car(val wheels: List<Wheel>)

不帶參數構造

帶參數構造

val car = Car()類實例化
var gallonsOfFuelInTank: Int = 15
? ? ? ? private set

自定義屬性引用方式(get set)

外部可讀不可寫

class LoginFragment : Fragment()類繼承
override fun onCreateView(類方法重寫
private lateinit var usernameEditText: EditText類實例化后推遲變量初始化

無參的匿名函數形式為{}

loginButton.setOnClickListener {//函數動作}

SAM轉換
伴生對象=java中的static,聲明靜態變量companion object
private val viewModel: LoginViewModel by viewModels()屬性委托?
String!?可以表示?String?或?String?null不明確性通過平臺類型
val accountName = account.name!!.trim()非 null 斷言運算符?!!(null會跑出異常),不建議用

val accountName = account.name?.trim()

val accountName = account.name?.trim()?:Default

安全調用運算符??.(為空返回null,建議后再跟?:表示為空默認賦值為Default使用)

val index: Int = 12?? ?

val index: Int
init {
?? ?index = 12
}

private lateinit var statusTextView: TextView

屬性初始化

(2,3?方式避免管理null,少加?)

未初始化就使用會Kotlin 會拋出?UninitializedPropertyAccessException

https://developer.android.com/kotlin/style-guide?hl=zh-cnkotlin官方編程規范
kotlin數據結構

kotlin_04 數據結構_kotlin 列表交換位置_新鏡的博客-CSDN博客?Kotlin語言(七):數據結構 - 簡書

參考鏈接
var array=arrayOf(1,"hello",true)混合類型

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38688.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38688.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38688.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機競賽 python+opencv+深度學習實現二維碼識別

0 前言 &#x1f525; 優質競賽項目系列&#xff0c;今天要分享的是 &#x1f6a9; pythonopencv深度學習實現二維碼識別 &#x1f947;學長這里給一個題目綜合評分(每項滿分5分) 難度系數&#xff1a;3分工作量&#xff1a;3分創新點&#xff1a;3分 該項目較為新穎&…

HotSpot虛擬機之字節碼執行引擎

目錄 一、棧幀 1. 棧幀結構 2. 基于棧的解釋執行過程 二、方法調用 1. 方法調用指令 2. 分派 三、動態類型語言 四、參考資料 一、棧幀 1. 棧幀結構 棧幀是Java虛擬機棧進行方法調用和執行的數據結構&#xff0c;是方法最基本的執行單元&#xff0c;是棧的元素。一個棧…

【環境配置】Windows10終端和VSCode下能夠直接打開Anaconda-Prompt

很多小伙伴在 Windows 下做深度學習開發的時候&#xff0c;遇到終端沒有在 Linux 那么方便&#xff0c;那么我們現在就可以來設置一下&#xff1b;這樣我們也可以在文件夾內部右鍵打開終端&#xff0c;也可以在 VS Code 里面新建一個虛擬環境的控制臺&#xff1b;這里主要是針對…

佛祖保佑,永不宕機,永無bug

當我們的程序編譯通過&#xff0c;能預防的bug也都預防了&#xff0c;其它的就只能交給天意了。當然請求佛祖的保佑也是必不可少的。 下面是一些常用的保佑圖&#xff1a; 佛祖保佑圖 ——————————————————————————————————————————…

【c語言】動態內存管理(超詳細)

他治愈了身邊所有人&#xff0c;唯獨沒有治愈他自己—超脫 csdn上的朋友你們好呀&#xff01;&#xff01;今天給大家分享的是動態內存管理 &#x1f440;為什么存在動態內存分配 我們定義的局部變量在棧區創建 int n 4;//在棧上開辟4個字節大小int arr[10] { 0 };//在棧上開…

Android Socket使用TCP協議實現手機投屏

本節主要通過實戰來了解Socket在TCP/IP協議中充當的是一個什么角色&#xff0c;有什么作用。通過Socket使用TCP協議實現局域網內手機A充當服務端&#xff0c;手機B充當客戶端&#xff0c;手機B連接手機A&#xff0c;手機A獲取屏幕數據轉化為Bitmap&#xff0c;通過Socket傳遞個…

Excel設置某列或者某行不某行不可以編輯,只讀屬性

設置單元格只讀的三種方式: 1、通過單元格只讀按鈕&#xff0c;設置為只為 設置行或者列的只讀屬性&#xff0c;可以設置整行或者整列只讀 2、設置單元格編輯控件為標簽控件(標簽控件不可編輯) 3、通過鎖定行&#xff0c;鎖定行的修改。鎖定的行與只讀行的區別在于鎖定的行不…

電子商務環境下旅游價值鏈

邁克爾 ? 波特(Michael E. Porter)在其《競爭優勢》一書中提出了“價值鏈” 的概念&#xff0c;并認為一家企業最核心的競爭優勢在于對價值鏈的設計。雖然邁克爾 ? 波 特提出的價值鏈主要是針對企業內部的價值鏈&#xff0c;但他視價值鏈為一系列連續完成的 活動&#xff…

openGauss學習筆記-40 openGauss 高級數據管理-鎖

文章目錄 openGauss學習筆記-40 openGauss 高級數據管理-鎖40.1 語法格式40.2 參數說明40.3 示例 openGauss學習筆記-40 openGauss 高級數據管理-鎖 如果需要保持數據庫數據的一致性&#xff0c;可以使用LOCK TABLE來阻止其他用戶修改表。 例如&#xff0c;一個應用需要保證表…

GPT垂直領域相關模型 現有的開源領域大模型

對于ToC端來說&#xff0c;廣大群眾的口味已經被ChatGPT給養叼了&#xff0c;市場基本上被ChatGPT吃的干干凈凈。雖然國內大廠在緊追不舍&#xff0c;但目前絕大多數都還在實行內測機制&#xff0c;大概率是不會廣泛開放的&#xff08;畢竟&#xff0c;各大廠還是主盯ToB、ToG市…

C/C++ 注意點補充

C/C 注意點補充 函數缺省 函數缺省 https://blog.csdn.net/xinger_28/article/details/83898804 // 是的&#xff0c;C語言中的函數不支持直接定義缺省參數。在你提供的代碼中&#xff0c;函數DelayXms沒有定義缺省參數。缺省參數只在一些高級編程語言中&#xff08;如C&…

flutter

1.dart語言學習 dart在線編輯器 //第一段dart代碼 void main() {ceshi c new ceshi(1,2);print(c.right);c.right 2;print(c.right);print(c.bottom);c.bottom 4;print(c.bottom); }class ceshi {num left, top;ceshi(this.left, this.top);num get right > left top;…

視頻集中存儲安防監控平臺EasyCVR優化AI硬件接入時的通道顯示異常問題

安防視頻監控平臺視頻集中存儲EasyCVR可拓展性強、視頻能力靈活、部署輕快&#xff0c;可支持的主流標準協議有國標GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持廠家私有協議與SDK接入&#xff0c;包括海康Ehome、海大宇等設備的SDK等。 安防監控視頻云存儲平臺EasyCVR既具…

【Python國內源】pip換源終極方法【Windows】

1、為什么要pip換源下載 安裝第三方庫時&#xff0c;很多庫來自于國外&#xff0c;下載速度慢得感人&#xff01; 2、常見的國內源 https://pypi.tuna.tsinghua.edu.cn/simple #清華 http://mirrors.aliyun.com/pypi/simple/ #阿里云 https://pypi.mirrors.ustc.e…

go_細節注意

go細節 一、使用指針接受者和不使用指針接受者1&#xff0c;不使用指針接受者&#xff1a;2&#xff0c;使用指針接受者3&#xff0c;區別與優劣勢 一、使用指針接受者和不使用指針接受者 1&#xff0c;不使用指針接受者&#xff1a; func (d dog) move() {fmt.Println("…

使用Logstash將數據從MySQL同步至Elasticsearch(有坑)

文章目錄 一、準備工作1、安裝elasticSearchkibana2、安裝MySQL3、安裝Logstash 二、全量同步1、準備MySQL數據與表2、上傳mysql-connector-java.jar3、啟動Logstash4、修改logstash.conf文件5、修改full_jdbc.sql文件6、打開Kibana創建索引和映射7、重啟logstash進行全量同步8…

TCP/IP協議追層分析物理層(第三十九課)

TCP/IP協議追層分析物理層(第三十九課) 1 物理層:建立、維護、斷開物理連接,定義了接口及介質,實現了比特流的傳輸。 1、傳輸介質分類 有線介質:網線(雙絞線)、光纖 無線介質:無線電 微波 激光 紅外線 2、雙絞線分類: 五類cat5: 適用于100Mbps 超五類cat5e:適用于…

Qt掃盲- Graphics View框架理論綜述

Graphics View框架理論綜述 一、概述二、Graphics View 體系結構1. The Scene2. The View3. 圖元 Item 三、圖形視圖坐標系統1. 圖元Item的坐標2. Scene Scene坐標3. View 視圖坐標4. 坐標映射 四、關鍵特性1. 縮放和旋轉2. 打印3. 拖放4. 鼠標指針和 提示5. 動畫6. OpenGL渲染…

【100天精通python】Day35:一文掌握GUI界面編程基本操作

目錄 專欄導讀 1 GUI 編程概述 1.1 為什么需要GUI&#xff1f; 1.2 常見的GUI編程工具和庫 1.3 GUI應用程序的組成和架構 2 使用Tkinter 庫 進行GUI編程 2.1 使用Tkinter庫進行GUI編程的基本流程 2.2 使用Tkinter庫進行GUI編程 2.2.1 導入Tkinter庫 2.2.2 添加標簽和…

繪制世界地圖or中國地圖

寫在前面 在8月初,自己需要使用中國地圖的圖形,自己就此也查詢相關的教程,自己也做一下小小總結,希望對自己和同學們有所幫助。 最終圖形 這個系列從2022年開始,一直更新使用R語言分析數據及繪制精美圖形。小杜的生信筆記主要分享小杜學習日常!如果,你對此感興趣可以加…