1. 程式人生 > >android kotlin其它(二)集合、區間、操作符

android kotlin其它(二)集合、區間、操作符

集合
與大多數語言不同,Kotlin 區分可變集合和不可變集合(lists、sets、maps 等)
Kotlin 沒有專門的語法結構建立 list 或 set。 要用標準庫的方法,如 listOf()、 mutableListOf():可變、 setOf()、 mutableSetOf()。 在非效能關鍵程式碼中建立 map 可以用一個簡單的慣用法來完成:mapOf(a to b, c to d)
List 和 set 有很多有用的擴充套件方法值得熟悉:

val items = listOf(1, 2, 3, 4)
items.first() == 1
items.last() == 4
items.filter { it % 2 == 0 } // 返回 [2, 4] val rwList = mutableListOf(1, 2, 3) rwList.requireNoNulls() // 返回 [1, 2, 3] if (rwList.none { it > 6 }) println("No items above 6") // 輸出“No items above 6” val item = rwList.firstOrNull()

區間
區間表示式由具有操作符形式 .. 的 rangeTo 函式輔以 in 和 !in 形成。

if (i in 1.
.10) { // 等同於 1 <= i && i <= 10 println(i) }

for (i in 4..1) print(i) // 什麼都不輸出
如果你想倒序迭代數字呢?也很簡單。你可以使用標準庫中定義的 downTo() 函式

for (i in 4 downTo 1) print(i) // 輸出“4321”

能否以不等於 1 的任意步長迭代數字? 當然沒問題, step() 函式有助於此

for (i in 1..4 step 2) print(i) // 輸出“13”

for (i in 4 downTo 1 step 2) print(i) // 輸出“42”

轉換操作符
“不安全的”轉換操作符
通常,如果轉換是不可能的,轉換操作符會丟擲一個異常。因此,我們稱之為不安全的。 Kotlin 中的不安全轉換由中綴操作符 as

val x: String = y as String

請注意,null 不能轉換為 String 因該型別不是可空的, 即如果 y 為空,上面的程式碼會丟擲一個異常。 為了匹配 Java 轉換語義,我們必須在轉換右邊有可空型別,就像:

val x: String? = y as String?

“安全的”(可空)轉換操作符
為了避免丟擲異常,可以使用安全轉換操作符 as?,它可以在失敗時返回 null

val x: String? = y as? String

類型別名為現有型別提供替代名稱。 如果型別名稱太長,你可以另外引入較短的名稱,並使用新的名稱替代原型別名。
typealias

相關推薦

android kotlin其它集合區間操作符

集合 與大多數語言不同,Kotlin 區分可變集合和不可變集合(lists、sets、maps 等) Kotlin 沒有專門的語法結構建立 list 或 set。 要用標準庫的方法,如 listOf()、 mutableListOf():可變、 setOf(

android之animationanimationsetinterpolator

一: animationset: 他是一個animation的一個子類,實際上是animation的一個集合。他將animation放到一個list集合中。需要對animation的基本設定可以通過animationset來設定。如果需要對一個控制元件進行多種動畫設定,可以採用animat

Kotlin學習List集合

基本語法 List集合類 Kotlin的集合分類: 可變集合類(Mutable) 不可變集合類(Immutable) 通常集合中的物件是指集合中物件的引用,集合型別主要有List(列表),Set(集),Map(對映)。 使用listOf()函式建立

Java基礎總結----集合多執行緒io虛擬機器等

Java集合 java集合框架的結構 List介面 List介面通常表示一個列表(陣列、佇列、連結串列、棧等),其中的元素可以重複,常用實現類為ArrayList和LinkedList,另外還有不常用的Vector。另外,LinkedList還

android Bluetooth 開發:開啟關閉搜尋允許搜尋檢視

相關專案的下載連結繼本專案之後實現了語音識別:點選開啟連結1.承接上一篇文章,本篇文章主要實現了藍芽的開啟 關閉 允許搜尋 檢視配對裝置2. BluetoothInit,主要實現了部件的初始化,按鈕的點選事件,通過ListVIew顯示本地配對的藍芽裝置,ListView的點選

Java多線程 —— 線程安全線程同步線程間通信含面試題集

err 線程等待 共同點 -c java多線 能夠 空間 而不是 不一致 一、線程安全 多個線程在執行同一段代碼的時候,每次的執行結果和單線程執行的結果都是一樣的,不存在執行結果的二義性,就可以稱作是線程安全的。 講到線程安全問題,其實是指多線程環境下對共享資源的訪問可能會

android事件分發

sim tdi p s oat front rac ram addclass framework 非常早之前寫過一篇android事件分發的博客,主要寫的是它是怎樣分發的,具體非常多原理的東西都沒有涉及到。今天就從源代碼看android怎樣控制它的分發機

Pyhton編程之變量用戶輸入及條件語句

退出 import turn 進行 不能 exec 條件 求和 變量 一:變量   變量定義的規則   1)只能由數字、字母、下劃線組成(不能以數字開頭)   2)不能使用關鍵字作為變量名   [‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘

ElasticSearch筆記整理:CURL操作ES插件集群安裝與核心概念

大數據 ElasticSearch ELK [TOC] CURL操作 CURL簡介 curl是利用URL語法在命令行方式下工作的開源文件傳輸工具,使用curl可以簡單實現常見的get/post請求。簡單的認為是可以在命令行下面訪問url的一個工具。在centos的默認庫裏面是有curl工具的,如

Android之Intent

Android Intent 前一篇(Android之Intent(一))講解過A(它用來調起B界面,這裏先理解為父界面) 可以向B(這裏先理解為子界面), 本篇正好是一個逆反的過程 , 即B向A傳遞數據。 一 : 界面設計① ,A(activity_main.xml)重要控件:1‘ (TextVie

Android NDK學習:編譯腳本語法Android.mk和Application.mk

GC make files 文件的 包括 一次 opengl aries 基本語法 一、Android.mk Android.mk分為一下幾部分: LOCAL_PATH:= $(call my-dir), 返回當前文件在系統中的路徑,Android.mk文件開始時必須定義

Android Camera2 拍照——使用TextureView

wid metadata TE 遍歷 接口 post eating connected edit 原文:Android Camera2 拍照(二)——使用TextureView

PHP面試:程序設計框架基礎知識算法與數據結構高並發解決方案類

表設計 工作原理 結構 單一入口 php 能力 高並發解決方案 數據表 缺點 一、程序設計 1、設計功能系統——數據表設計、數據表創建語句、連接數據庫的方式、編碼能力 二、框架基礎知識 1、MVC框架基本原理——原理、常見框架、單一入口的工作原理、模板引擎的理解 2、常見框

VC++中文件操作--- .ini文件CFile64

其中 文件操作 ray rom 數組 ini文件 情人節 set 清空   各種關於文件的操作在程序設計中是十分常見,如果能對其各種操作都了如指掌,就可以根據實際情況找到最佳的解決方案,從而在較短的時間內編寫出高效的代碼,因而熟練的掌握文件操作是十分重要的。本文將對Visu

IDEA搭建Maven WebSSM項目——jar包引入jetty服務器配置和ssm配置

自動下載 項目文件 工具欄 exclude 版本 don app 網站 tab 第二篇:jetty服務器插件配置,ssm所需基本jar包引入,ssm相關文件配置 1. 配置jetty服務器插件打開已默認創建的pom.xml文件,其中已經自動引入了一些jar和maven插件,

並發編程——開啟進程

字符串 方法 nat () 之前 multi thread run 終止進程 一、multiprocessing模塊 1、multiprocessing模塊用來開啟子進程,並在子進程中執行我們定制的任務(比如函數),該模塊與多線程模塊threading的編程接口類似

Shell腳本 文本測試整數值比較字符串比較 條件測試操作 if語句應用實例

內存 root 條件測試 主機 serve 覆蓋 整數 local 分數 ####################test命令####################測試特定的表達式是否成立,當條件成立時,測試語句的返回值為0,否則為其他數值格式1:test 條件表達式格

Android 開發:安卓常用5大布局方式

一、Android中常用的5大布局方式有以下幾種: 1.線性佈局(LinearLayout):按照垂直或者水平方向佈局的元件; 2.幀佈局(FrameLayout) :元件從螢幕左上方(0,0)佈局元件; 3.相對佈局 (RelativeLayout) :相對其它元件的佈

【Hibernate】持久化類主鍵生成策略和一級快取

1.2 持久化類的編寫規則 1.2.1 持久化類的概述 什麼是持久化類 持久化:將記憶體中的一個物件持久化到資料庫中過程。Hibernate框架就是用來進行持久化的框架。 持久化類:一個Java物件與資料庫的表建立了對映關係,那麼這個類在Hibernate中稱為是持久化類。

C#.網路程式設計 Tcp基礎 TCP組包粘包拆包的原理

一、TCP粘包,拆包及解決方法    轉https://blog.csdn.net/scythe666/article/details/51996268 以下是轉發的部分內容          我們都知道TCP屬於傳